首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在角13中使用lastValueFrom 7为RxJS ()设置超时配置?

如何在角13中使用lastValueFrom 7为RxJS ()设置超时配置?
EN

Stack Overflow用户
提问于 2021-11-22 13:59:36
回答 1查看 1.6K关注 0票数 1

报价来自RxJS开发团队:

为了解决所有这些问题,我们决定放弃toPromise(),并引入两个新的助手函数,用于将承诺转换为承诺。 使用两个新函数之一-- 作为对不推荐的toPromise()方法的替代,您应该使用两个内置的静态转换函数firstValueFromlastValueFrom中的一个.

在我的例子中,我向服务器发送一个get请求,以检查服务器是否可用。在HTTP或错误返回之前,主函数(在本例中是ngOnInit())不会更进一步。

本文的这一部分,他们建议将一个timeout添加到lastValueFrom()函数中,这个函数应该作为一个配置config?: LastValueFromConfig<D>添加。

我的代码:

代码语言:javascript
运行
复制
    let something = lastValueFrom(this.http.get<resultDTO> 
    ('/api/account/test'),).then(
          res => {
            this.note = (res.data);
          }
    );

如何设置此配置并将其传递给函数?

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 14:04:51

必须将timeout操作符添加到HTTP请求中,而不是添加来自lastValueFrom的承诺。

代码语言:javascript
运行
复制
let something = lastValueFrom(
  this.http.get<resultDTO>('/api/account/test').pipe(
    timeout(5000)      // <-- HTTP request will error out if no response for 5 seconds
  )
).then(res => {
  this.note = (res.data);
});

目前的LastValueFromConfig参数(RxJS v7)只有一个值。

代码语言:javascript
运行
复制
export interface LastValueFromConfig<T> {
  defaultValue: T;
}

这与可观察者的timeout行为无关。

所以在你的情况下你可以

代码语言:javascript
运行
复制
let something = lastValueFrom(
  this.http.get<resultDTO>('/api/account/test').pipe(
    timeout(5000)      // <-- HTTP request will error out if no response for 5 seconds
  ),
  { defaultValue: { data: ''} }  // <-- default value to be used
).then(res => {
  this.note = (res.data);
});

尽管如此,这是一个例子,我要说的是,没有内在的必要将可观察到的转化为承诺。你只需用可观察到的

代码语言:javascript
运行
复制
this.http.get<resultDTO>('/api/account/test').pipe(
  timeout(5000)      // <-- HTTP request will error out if no response for 5 seconds
).subscribe({
  next: (res: resultDTO) => {
    this.note = res.data;
  },
  error: (error: any) => {
    // handle errors
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70066962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档