Angular 使用 Azure Durable Functions => retryWhen 用于 http 响应

Angular with Azure Durable Functions => retryWhen for http response

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

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

所以我正在寻找一种像 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