promise-lib
v0.1.4
Published
Plib is a Promise Utility Library. This is meant to make it useful when you need to work with lots of async functions or are performing async operations in loops.
Downloads
1
Maintainers
Readme
PLib
Usage
Plib is a Promise Utility Library. This is meant to make it useful when you need to work with lots of async functions or are performing async operations in loops.
import {PArray,CallBack} from "promise-lib";
PArray
PLib allows async operations to happen over an array. Standard Array methods can be used with async versions.
eg.
import {PArray} from "promise-lib";
let files = ["file.txt","file2.txt"];
files = new PArray(files);
let file_content = files.map(async function(file){
return new Promise(function(resolve,reject){
fs.readFile(file,"utf8",function(err,content){
if(err){
return reject(err)
}else{
resolve(content);
}
});
})
})
This can be quite ugly to look at however so using the callback utility we can rewrite the following.
import {PArray,CallBack} from "promise-lib";
let files = ["file.txt","file2.txt"];
files = new PArray(files);
let file_content = files.map(async function(file){
let [err,content] = await CallBack.Call(fs.readFile,file,"utf8")
if(err) throw err;
return content;
})
This helps code remain clean and declarative.
CallBack
CallBack which has been used in the example above can be used as a quick way to take a callback accepting function and make it a promise call. This will help to promote cleaner code.
A standard CallBack that can be converted to make things easier is any IO operation that takes a callback as it's last parameter.
//...
let [err,content] = await CallBack.Call(fs.readFile,file,"utf8")
console.log(content);
//continue working with content
//Compared
fs.readFile(file,"utf8",function(err,content){
//Callback Hell
console.log(content);
//continue working with content
})