synchron
v1.0.7
Published
Wait till async functions end and forces a synchron process without blocking
Downloads
27
Maintainers
Readme
Synchron
Wrapping an async function into a synchron function call without blocking.
Install
npm install synchron --save
Using Synchron
Create a new instance of Synchro and use the methods return
and throw
. The wait
method will wait until
return
or throw
was called.
const { Synchron } = require('synchron');
var asyncTimeout = new Synchron();
setTimeout(function(){
// do something
console.log('inside setTimeout');
// and than call done
asyncTimeout.done();
}, 500);
// non-blocking wait until done was called
asyncTimeout.wait();
console.log('back in main');
// output:
// -------
// inside setTimeout
// back in main
Create a new instance and pass a function to wrap the asnyc call into a synchron function.
The warpped function will run in the context of Synchron
, so you can use this.return
and/or this.throw
.
If you like to exit the async function without returning a result just call this.return()
without a parameter or call this.done()
.
const { Synchron } = require('synchron');
var readFileSync = new Synchron(function(filename) {
var fs = require('fs');
fs.readFile(filename, 'utf8', (err, data) => {
if (err) {
this.throw(err);
} else {
this.return(data);
}
});
});
try {
// here is the synchron function call
var data = readFileSync('./testfile.txt');
console.log(data);
} catch (err){
// if an error occours the function will throw it and you can catch it
console.log(err); // maybe an error like: "ENOENT: no such file or directory, open './testfile.txt'"
}