javascript - 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 无服务器函数上停止?
解决方案
推荐阅读
- sql - SQL Server - 在 where 子句中使用子字符串
- amazon-web-services - 使用放大 Interactions.send 设置会话/请求属性
- python - 是否可以通过参考 django rest 框架中的一个来搜索两个字段
- android - 如何停止线程(和 foo 循环) - java
- android - 使用 fusedLocationProviderClient 时“呼叫需要权限,用户可能会拒绝”
- json - 展平类似于数组的 BigQuery 字符串
- swift - 具有多个单元格的 TableView swift
- node.js - 将json数据从角度发布到nodejs
- botframework - 如何在消息扩展中使用多个参数?
- javascript - 调用具有不同返回类型的多个异步函数时,Promise.all 抛出类型错误