1.0.7 • Published 8 years ago
synchron v1.0.7
Synchron
Wrapping an async function into a synchron function call without blocking.
Install
npm install synchron --saveUsing 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 mainCreate 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'"
}