【问题标题】:Angular with Azure Durable Functions => retryWhen for http responseAngular 与 Azure Durable Functions => retryWhen 用于 http 响应
【发布时间】:2020-11-11 14:39:53
【问题描述】:

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

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

  • 向 Azure 函数 URL 发送 POST 请求以开始后台处理。
  • 在响应中,我获得了用于响应池的 URL。
  • 开始轮询 URL 并检查响应中的状态字段(当设置为 Running 或 Processing 时,表示结果尚不可用)
  • 在某些时候响应会返回结果。

因此,我正在寻找一种能够像 retryWhen 运算符那样异步重试 GET 调用,但不是监视错误,而是应该查看响应本身并重试操作,直到响应中的状态字段设置为完成。

任何想法如何做到这一点?

提前致谢。

【问题讨论】:

  • 你投票了吗?
  • 是的,已更正。

标签: angular azure rxjs azure-functions azure-durable-functions


【解决方案1】:

试试

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

expand 操作符会将来自 emmiting observable 的事件返回到同一个回调,直到它们结束。如果在轮询调用之间需要一些“超时”或任何其他计时逻辑,那么只需随意修改从 expand 返回的 observable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    相关资源
    最近更新 更多