Я играю с promises в Node.js и пытаюсь использовать Promise.all. Я нажимаю три функции, которые возвращают обещание в массив, а затем вызывая Promise.all, но все решения никогда не попадают. В отладчике также говорится, что Promise.all "undefined".
Почему Promise.all никогда не возвращается и почему он отображается как "undefined"?
Соответствующая часть кода:
var updates = [];
updates.push(data.updateItemCondition(characterID, specificItemID_toUse, newCondition));
updates.push(data.updateCharacterLoot(characterID, newValue));
updates.push(data.updateSharedLoot(lootUpdateChange));
Promise.all(updates).then(function (success) {
resolve("Item successfully used");
}, function (error) {
resolve("Failed to use item " + error.toString());
});
Все три функции выглядят примерно так, как показано ниже, и с помощью отладчика я вижу, что все три разрешающих элемента попадают (и все три соответствующих файла на io.writeFile обновляются на диске)
data.updateSharedLoot= function (lootUpdateChange) {
return new Promise(function (resolve, reject) {
//some logic
io.writeFile(...,function(callbackSuccess){
resolve(callbackSuccess);
});
});
}