0
我正在使用npm
async waterfall
方法來編寫功能。在那裏我發現了一種奇怪的情況(可能是,我的意識很低)。我的功能如下。我在第一個函數中創建一個事件數組,並通過回調參數將其傳遞給第二個函數。然後我在第二個函數中捕獲該數組並循環它。我想操縱數組的幾個值。之後,我把它發送到最終的功能。NodeJs瀑布回調功能不起作用
最終函數中的console.log
語句只是從第一個函數輸出數組的初始狀態,而不是我在第二個函數中完成的操作。任何想法是高度讚賞。
var _async = require('async');
var criteria = {};
_async.waterfall([
function getSortedCalenderItems(callback){
var events = []; // set of events are included inthis array
callback(null, events)
},
function getUsers(events, callback) {
for (var i = 0; i < events.length; i++) {
var event = events[i];
var user = event.shared_user;
// manipulate user
var newUser = {
'id' : '<id>',
'name' : 'New name'
};
event.shared_user = newUser;
events[i-1] = event;
if(i === (events.length)) {
callback(null, events)
}
}
}
],function(err, events){
console.log(events); // this shows the initial state of the array. Not the manipulated events array.
return;
});
我的意識是*低* – Sikorski
你是不是在你的代碼操縱任何東西,你就創建了一個NEWUSER和完蛋了。可能你忘了將它添加到你的列表中。 – Sikorski
是的。你是對的。我錯過了它。請檢查現在更新的代碼。 –