У меня есть функция Node.js, которая прекрасно работает локально, однако в бессерверной функции Azure (HTTP Trigger) она неожиданно останавливается в цикле запроса, если один из запросов отвечает пустым request.body, вместо того, чтобы продолжать черезостальная часть цикла.
Ниже приведен пример кода, а затем файла console.log, чтобы показать, где останавливается функция.
const ids = [1, 2]
const responses = ids.map(async ids => {
const response = await axios.get(
`${URL}/api/purchase/${ids}/details`,
headers
);
console.log("Status: ", response.status);
console.log("Response: ", response.data);
return response.data;
});
const responseCollection = await Promise.all(responses);
Ниже приведен журнал:
[Information] Status 200
[Information] Response []
[Information] Executed 'Functions.my-func' (Succeeded, Id=21988***)
[Information] Status 200
[Information] Response [data:{number:2}]
Как видно из журнала, как только он получает пустое тело ответа, он прерывается без продолжения.Это показано с флагом «Выполнено».
В локальном приложении Node.js с тем же кодом, он продолжает цикл и после запуска Promise.all объединяет пустой ответ с другим непустым.один.Есть ли способ избежать ее остановки на бессерверной функции Azure?