【发布时间】:2016-05-18 23:55:52
【问题描述】:
我在从 queryArray 中捕获每个 id 并将其与返回承诺结果一起存储时遇到问题。
getSavedQueries: function(req, res) {
SPromise.then(function(client) {
const SavedQuery = client.Reports;
var queryArray = req.query.queryArray; // ['123', '234', '456']
var payloadObj = {};
var actions = lo.map(queryArray, function(id) {
var queryID = Number(id);
*payloadObj['ID'] = queryID;* <--- not sure where to put this
return SavedQuery.findOne(queryID).then(function(result){
payloadObj['query'] = result;
return payloadObj
});
});
return Promise.all(actions);
}).then(function(result){
return res.json(result)
});
}
我的 res.json(result) 返回所有三个对象的数组中的最后一项:
[ {ID: 456, query: ...},
{ID: 456, query: ...},
{ID: 456, query: ...}]
代替:
[ {ID: 123, query: ...},
{ID: 234, query: ...},
{ID: 456, query: ...}]
【问题讨论】:
-
你继续使用相同的
payloadObj。
标签: javascript asynchronous promise es6-promise