Angular with Azure Durable Functions => retryWhen for http response



我正在尝试从Angular 10应用程序中使用Azure函数。诀窍是将Azure功能协议的复杂性隐藏在单个Observable后面。

要调用Azure函数,我需要执行以下操作:

  • 向Azure功能URL发送POST请求,以启动后台处理
  • 在响应中,我得到了响应池的URL
  • 开始轮询URL并检查响应中的状态字段(当设置为"正在运行"或"正在处理"时,表示结果还不可用(
  • 在某个时刻,响应会返回结果

因此,我正在寻找一种像retry一样异步重试GET调用的能力。当操作员这样做时,它不应该监视错误,而是应该查看响应本身并重试操作,直到响应中的状态字段设置为完成。

有什么办法吗?

提前谢谢。

尝试

data$ = initialPost().pipe(
switchMap(postData => pollRequest(postData.url).pipe(
expand(pollData => pollData.status === 'in progress' ? pollRequest(postData.url) : EMPTY)
)
);

expand操作符会将来自emmiting observable的事件返回到同一个回调,直到它们结束。如果一些";超时";或者在轮询调用之间需要任何其他时序逻辑,然后可以随意修改从扩展返回的可观察结果

最新更新