У меня есть этот асинхронный вызов Waterline внутри вспомогательной функции answerUserTag:
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 (то есть одно обещание), он работает нормально. Но если есть два userTagAnswers, и я установил точку останова после запроса theQuestion
в помощнике, я вижу следующие бессмысленные значения:
answerObject.tag
равно 5c338ae267a1983e84340388
theQuestion.id
равно 5c27227ac1e60913703f3002
Кажется, что нелогичное совпадение между переменными при вызове нескольких обещаний.