【发布时间】:2019-01-17 13:18:01
【问题描述】:
我在辅助函数 answerUserTag 中有这个 Waterline 异步调用:
theQuestion = await UserTag.findOne({id: answerObject.tag});
这就是我如何称呼上面的助手:
const promises = userTagAnswers.map(userTagAnswer =>
sails.helpers.answerUserTag.with(
{
userTagAnswer: userTagAnswer,
answeringUserId: inputs.userId,
userType: inputs.userType
}));
await Promise.all(promises);
如果只有一个 userTagAnswers(即一个 promise),它可以正常工作。但是如果有两个 userTagAnswers 并且我在帮助程序中的 theQuestion 查询之后设置了一个断点,我会看到以下不合理的值:
answerObject.tag等于5c338ae267a1983e84340388
theQuestion.id等于5c27227ac1e60913703f3002
当调用多个 Promise 时,变量之间似乎存在不合逻辑的重叠。
【问题讨论】:
-
你的助手是否在兑现承诺?这可能会有所帮助:toniov.github.io/p-iteration
标签: javascript node.js asynchronous sails.js waterline