Manage IO operations in Node.js using direct style (sync code like) without callbacks. It works with generators under the hood.
Implementation based on the proposed solution in the great book Node.js Design Patterns
npm i asyncflow-gen
const asyncFlow = require('asyncflow-gen');
asyncFlow(function* (callback) {
yield fs.writeFile('./test/testFile', 'Hey there!', callback);
const data = yield fs.readFile('./test/testFile', 'utf8', callback);
console.log('data is: ', data);
yield fs.unlink('./test/testFile', callback);
console.log('That is all, folks! Where are the callbacks??');
});
fs.writeFile('./test/testFile', 'Hey there!', err => {
if (err) {
handleErrorFunction(err);
}
fs.readFile('./test/testFile', 'utf8', (err, data) => {
if (err) {
handleErrorFunction(err);
}
console.log('data is: ', data);
fs.unlink('./test/testFile', err => {
if (err) {
handleErrorFunction(err);
}
console.log('That is all, folks! Yes, I do not like this callback cascade.');
});
});
});