Кажется, что Azure убивает ваш процесс после возврата функции. Поскольку он не возвращал обещание (или, скорее, не возвращал обещание, которое действительно ожидало вашего времени ожидания), он не ожидал выполнения обратного вызова обещания.
Вы можете использовать
module.exports = function(context, iotHubMessage) {
// ^^^^^^^^ no async necessary here
context.log('START');
var promise1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 1000);
});
context.log(promise1);
var promise2 = promise1.then(function() {
context.log("promise fulfilled");
});
return promise2;
// ^^^^^^^^^^^^^^^^
}
или с синтаксисом async
/ await
:
module.exports = async function(context, iotHubMessage) {
context.log('START');
var promise1 = new Promise(function (resolve, reject) {
setTimeout(resolve, 1000);
});
context.log(promise1);
await promise1;
// ^^^^^
context.log("promise fulfilled");
}