Может кто-нибудь объяснить, почему это не работает, как я ожидаю?
Я пытаюсь вернуть только идентификатор созданных или обновленных элементов для использования в Promise.each().then(). Это необходимо, потому что create возвращает объект и обновляет массив объектов.
Promise.each(items, function(item){
if(...item doesn\'t exist...)
return Item.create(item)
.then(function (created) {
return created.id;
///HOW DO I GET THIS ID ONLY?
});
else {
return Item.update(item)
.then(function (updated) {
return updated[0].id;
///AND THIS ID?
});
}
}).then(function(result) {
sails.log("THIS SHOULD BE AN ID" + JSON.stringify(result));
});
результатом является весь созданный объект, а не только идентификатор. Я хочу вернуть массив только обновленных идентификаторов. По-видимому, вложенные обещания - это плохо, но я не знаю, как это упростить.
Promise.each
в версии 2.x возвращает исходный массив, а возврат внутри итератора служит только сигналом того, какое обещание ожидать перед итерацией следующего индекса. Что ты пытаешься сделать ? какой идентификатор вы пытаетесь вернуть и почему этот идентификатор? - person Esailija   schedule 10.02.2015