Angular 异步HTTP调用,直到满足以下条件:

Angular 异步HTTP调用,直到满足以下条件:,angular,typescript,promise,Angular,Typescript,Promise,我在Angular中有一个HTTP调用,它返回一个承诺。我正在使用setTimeout刷新间隔后的呼叫。是否可以使用一些内置的函数/模式来完成这项工作?是的,您可以很容易地使用RXJS。当然,在不使用承诺的情况下,rxjs在其强大的操作符(如interval)中的威力就来了 间隔(1000) .烟斗( switchMap(()=>this.http.get(“…url…”), 映射(响应=>{ if(response.statusCode==1)返回response.data; else返回未定

我在Angular中有一个HTTP调用,它返回一个承诺。我正在使用setTimeout刷新间隔后的呼叫。是否可以使用一些内置的函数/模式来完成这项工作?

是的,您可以很容易地使用RXJS。当然,在不使用承诺的情况下,rxjs在其强大的操作符(如interval)中的威力就来了

间隔(1000)
.烟斗(
switchMap(()=>this.http.get(“…url…”),
映射(响应=>{
if(response.statusCode==1)返回response.data;
else返回未定义;//或某些错误消息或数据。
})
)
.订阅(响应=>{
//对将在一秒钟内出现的响应执行某些操作
});

基本上是这样的。但是,如果您提供自己的代码,我们可以帮助您仅使用rxjs就可以完全按照您的需要进行转换。这是一个非常强大的库,建立在非常好的可观察设计模式之上。

是的,您可以非常轻松地使用RXJS。当然,在不使用承诺的情况下,rxjs在其强大的操作符(如interval)中的威力就来了

间隔(1000)
.烟斗(
switchMap(()=>this.http.get(“…url…”),
映射(响应=>{
if(response.statusCode==1)返回response.data;
else返回未定义;//或某些错误消息或数据。
})
)
.订阅(响应=>{
//对将在一秒钟内出现的响应执行某些操作
});

基本上是这样的。但是,如果您提供自己的代码,我们可以帮助您仅使用rxjs就可以完全按照您的需要进行转换。这是一个非常强大的库,建立在非常好的可观察设计模式上。

根据响应中检查的条件,我们如何摆脱这种情况?我们可以使用带有条件的
map
操作符。我会为你更新答案。我不明白“爆发”部分。你能再详细一点吗?另外,我得到了这样一点:属性“pipe”在类型“Observable”@awesomemypro上不存在,你使用的是哪个版本的RXJS?因为旧版本需要一点不同的语法,这里的map操作符背后的想法是根据您想要的条件切换管道返回值。。请记住,如果您只希望一个条件保持为真,则可以使用
过滤器
运算符。。检查一下。根据在响应中检查的条件,我们如何摆脱这种情况?我们可以使用带有条件的
map
操作符。我会为你更新答案。我不明白“爆发”部分。你能再详细一点吗?另外,我得到了这样一点:属性“pipe”在类型“Observable”@awesomemypro上不存在,你使用的是哪个版本的RXJS?因为旧版本需要一点不同的语法,这里的map操作符背后的想法是根据您想要的条件切换管道返回值。。请记住,如果您只希望一个条件保持为真,则可以使用
过滤器
运算符。。看看这个。