首页 > 解决方案 > Azure Functions 中断请求循环

问题描述

我有在本地运行良好的 Node.js 函数,但是在 Azure 无服务器函数(HTTP 触发器)中,如果其中一个请求以空 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 无服务器函数上停止?

标签: javascriptnode.jsazureazure-functionsazure-function-async

解决方案


推荐阅读