Azure Functions在请求循环上中断

时间:2019-04-30 19:15:02

标签: javascript node.js azure azure-functions azure-function-async

我有在本地运行良好的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无服务器功能上?

0 个答案:

没有答案