Angular 使用 Azure Durable Functions => retryWhen 用于 http 响应
Angular with Azure Durable Functions => retryWhen for http response
我正在尝试使用 Azure Functions 表单 Angular 10 应用程序。
诀窍是将 Azure 函数协议的复杂性隐藏在单个 Observable 背后。
要调用 Azure 函数,我需要执行以下操作:
- 向 Azure 函数 URL 发送 POST 请求以开始后台处理。
- 在响应中,我将 URL 收集起来以供响应。
- 开始轮询 URL 并检查响应中的状态字段(当设置为 运行 或 Processing 时表示结果尚不可用)
- 在某些时候,响应会返回结果。
所以我正在寻找一种像 retryWhen 运算符那样异步重试 GET 调用的能力,而不是监视错误,它应该查看响应本身并重试操作,直到响应中的状态字段设置为完成.
知道怎么做吗?
提前致谢。
尝试
data$ = initialPost().pipe(
switchMap(postData => pollRequest(postData.url).pipe(
expand(pollData => pollData.status === 'in progress' ? pollRequest(postData.url) : EMPTY)
)
);
expand operator 将 return 事件从 emmiting observable 返回到相同的回调,直到它们结束。如果在轮询调用之间需要一些“超时”或任何其他时序逻辑,那么请随意修改从 expand
编辑的可观察对象 return
我正在尝试使用 Azure Functions 表单 Angular 10 应用程序。 诀窍是将 Azure 函数协议的复杂性隐藏在单个 Observable 背后。
要调用 Azure 函数,我需要执行以下操作:
- 向 Azure 函数 URL 发送 POST 请求以开始后台处理。
- 在响应中,我将 URL 收集起来以供响应。
- 开始轮询 URL 并检查响应中的状态字段(当设置为 运行 或 Processing 时表示结果尚不可用)
- 在某些时候,响应会返回结果。
所以我正在寻找一种像 retryWhen 运算符那样异步重试 GET 调用的能力,而不是监视错误,它应该查看响应本身并重试操作,直到响应中的状态字段设置为完成.
知道怎么做吗?
提前致谢。
尝试
data$ = initialPost().pipe(
switchMap(postData => pollRequest(postData.url).pipe(
expand(pollData => pollData.status === 'in progress' ? pollRequest(postData.url) : EMPTY)
)
);
expand operator 将 return 事件从 emmiting observable 返回到相同的回调,直到它们结束。如果在轮询调用之间需要一些“超时”或任何其他时序逻辑,那么请随意修改从 expand
编辑的可观察对象 return