Я использую 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
Да. Ты прав. Я пропустил это. Проверьте обновленный код сейчас. –