.then()
необходимо передать ссылку на функцию. Вы не проходите это так. Изменить это:
Promise.all([promise1, promise2, promise3]).then(res.send(dataObject));
к этому:
Promise.all([promise1, promise2, promise3]).then(data => res.send(dataObject));
Ваша версия кода немедленно выполняет res.send(dataObject)
, а затем передает возвращаемое значение из этого значения в .then()
. Вы должны передать ссылку на функцию в .then()
, чтобы инфраструктура обещания могла вызвать эту функцию через некоторое время.
Чтобы проиллюстрировать, ваша версия кода работает примерно так:
let f = res.send(dataObject);
Promise.all([promise1, promise2, promise3]).then(f);
Как вы можете ясно видеть, вы выполняете res.send()
ДО Promise.all().then()
может сделать это.
Вместо этого вы хотите сделать что-то вроде этого:
function f() {
res.send(dataObject);
}
Promise.all([promise1, promise2, promise3]).then(f);
Где вы явно передаете функцию, которую позже можно вызвать, на .then()
. Сокращенная версия этого:
Promise.all([promise1, promise2, promise3]).then(data => res.send(dataObject));