[英]NodeJs parent function variable appears to be out of scope in async.waterfall
[英]nodejs and async.waterfall with if conditions and conditional function list.
我一直在使用async.waterfall和nodejs。 它工作得很好,但現在我對流量有疑問。
我想在async.waterfall流程中使用簡單的if條件。
async.waterfall([
callOne,
callTwo,
if(condition > 0 ) {
callTest1,
callTest2,
}else{
callTest3,
callTest4,
}
callThree,
callFour,
callFive,
], function (err, result) {
if (err) {
return res.status(400).jsonp({error: err});
}
});
我只是想測試一個條件..
如果是條件是真的
然后運行一些功能
其他
運行其他功能。
萬一
清理
我也在嘗試這個...一個async.waterfall調用兩個async.waterfall / s
router.post('/testUser', function (req, res, next) {
......
function validateAccount(callback) {
if (config.CHECK_EMAIL_MEMBER_ID > 0) {
async.waterfall([
callOne,
callTwo,
if(condition > 0 ) {
callTest1,
callTest2,
}else{
callTest3,
callTest4,
}
callThree,
callFour,
callFive,
], function (err, result) {
if (err) {
return res.status(400).jsonp({error: err});
}
});
} else {
async.waterfall([
callOneb,
callTwob,
if(condition > 0 ) {
callTest1b,
callTest2b,
}else{
callTest3b,
callTest4b,
}
callThreeb,
callFourb,
callFiveb,
], function (err, result) {
if (err) {
return res.status(400).jsonp({error: err});
}
});
}
}
async.waterfall([
setupUser,
testOne,
validateAccount,
sendEmail,
], function (err, result) {
if (err) {
return res.status(400).jsonp({error: err});
}
});
});
您當然不能在數組中使用if
語句,但我認為您正在尋找的是:
async.waterfall([
callOne,
callTwo,
function (condition, callback) {
if (condition > 0) {
async.waterfall([
callTest1,
callTest2
], callback);
} else {
async.waterfall([
callTest3,
callTest4
], callback);
}
},
callThree,
callFour,
callFive,
], function (err, result) {
if (err) {
return res.status(400).jsonp({error: err});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.