我有一個問題想從一個查詢的值的下一個步驟內async.forEachOf
,取決於if語句的運行,所以我可以傳遞到價值的async.waterfall
正從async.forEachOf的值傳遞到async.waterfall
這裏的下一步是代碼:
async.waterfall([
function(callback) {
db.query('select id from topics where description = ?',
[topic], function(err, rows){
callback(err, rows);
});
},
function(rows, callback) {
var query = rows[0].id
db.query('select id, background, viewOrder, description from topics where parent = ? order by viewOrder',
[query], function(err, rows){
callback(err, rows);
});
},
function(rows, callback){
var callbackRows = rows;
async.forEachOf(callbackRows, function(row, key, callback){
var topics
console.log('rows[key].id: ', callbackRows[key].id);
if (callbackRows[key].background == 0){
var query = callbackRows[key].id
db.query('select id, background, viewOrder, description from topics where parent = ? order by viewOrder',
[query], function(err, rows){
callbackRows[key].subTopics = rows;
topics = callBackRows;
console.log('rows from async.forEach db query: ', rows);
console.log("from inside asnyc.foreach", callbackRows);
});
}
callback();
}, function(){
callback(null, topics);
console.log('forEachOf callback called');
});
// console.log(topics);
}
], function(err, topics){
console.log("from end of waterfall: ", topics);
});
我試圖做這多種方式,目前我得到的錯誤是主題沒有在該行定義callback(null, topics)
在async.forEachOf
部
現在寫得比較累,我要去睡覺了。如果這需要改善,我會看到它。與此同時,我試圖做的是將async.forEachOf
結尾的查詢結果附加到前面查詢返回值的數組中的元素。從那裏,我想發送這個在響應對象中的快遞,在async.waterfall
的最後回調。
我仍然獲得未定義與變化 – realisation
我碰到的結論回調控制檯日誌async.forEachOf'的'年底之前。另外,當我嘗試將'async.forEachOf'的回調觸發器放在if語句中時,我沒有得到'async.waterfall'結尾回調的console.log。 – realisation
你有這條線在這裏'topics = callBackRows;',把'console.log('topics',topics)'放在那行之後,看它是否在forEachOf執行結束時有一個值。 –