I don't know how to properly phrase it, so I'll just give the example:
I have generator functions that behave as such:
function generateSomething(app) {
return new Promise(function (resolve, reject) {
var cookie;
var login = function (async_cb) {
// Ajax call to login
// This would return a cookie that I need to use for subsequent calls
}
var generate = function (async_cb) {
// This will use the cookie returned from login
}
async.series([
login,
generate,
generate,
generate,
function () {
resolve();
}
]);
});
}
I'll be having many generator files, and there are many functions similar in all of them (for instance, the login). So I'd rather refactor that out into a global helper class. I also really like the async library because of is clean format.
Here comes my problem...
To refactor the login function, I have:
var Helper = {};
module.exports = Helper;
Helper.login = function (app) {
return function (async_cb) {
// Ajax to login
// Once done, call
aysnc_cb();
}
}
And I would use it in my generator function as:
var Helper = require('./helper');
function generateSomething(app) {
return new Promise(function (resolve, reject) {
var cookie;
var generate = function (async_cb) {
// This will use the cookie returned from login
// Once done, call
aysnc_cb();
}
async.series([
Helper.login(app),
generate,
generate,
generate,
function () {
resolve();
}
]);
});
}
The problem though is how do I also return cookie in this example? I realize I would use a Promise and return the result with resolve() but that would mean I cannot use the clean look of async.series([Helper.login, ...]).
Help is appreciated.