该映射应该将内部查询的结果附加到每个对象。
var newobj = obj.map(function (frequentPosition) {
var query = `SQL query that uses attributes of obj`;
sequelize.query(query).then(result => {
obj.newArrayAttribute = result[0];
return obj;
});
});
返回的newobj是未定义的数组
答案 0 :(得分:0)
当前,您确实会异步更改对象,但是您不必等待异步调用完成,这就是为什么看起来对象从未更改的原因。另外,您不会从.map
内部返回任何内容,因此newobj
是undefined
的数组。
sequelize.query(query)
已经返回了一个诺言,如果您从.map
回调中返回了一个诺言,则会得到一个诺言数组,您可以将其变成一个使用{{解析为一个数组的Promise。 1}}:
Promise.all
然后您可以将promise用作:
const promise = Promise.all(obj.map(frequentPosition => {
var query = `SQL query that uses attributes of obj`;
return sequelize.query(query).then(result => {
return { ...obj, newAttribute: result[0], };
});
});