【发布时间】:2019-11-27 15:45:08
【问题描述】:
我在 Angular 中有一个 HTTP 调用,它返回一个承诺。我正在使用 setTimeout 在间隔后刷新呼叫。是否可以使用一些可以完成这项工作的内置函数/模式?
【问题讨论】:
标签: angular typescript promise
我在 Angular 中有一个 HTTP 调用,它返回一个承诺。我正在使用 setTimeout 在间隔后刷新呼叫。是否可以使用一些可以完成这项工作的内置函数/模式?
【问题讨论】:
标签: angular typescript promise
是的,你可以很容易地使用 RXJS。但是当然不使用 Promises,而 rxjs 的强大之处在于其强大的操作符(如区间)。
interval(1000)
.pipe(
switchMap(() => this.http.get('...url...')),
map(response => {
if(response.statusCode == 1) return response.data;
else return undefined; //or some error message or data.
})
)
.subscribe(response => {
// do somthing with the response that will come in one second interval
});
基本上它看起来像这样。但是,如果您提供自己的代码,我们可以帮助您仅使用 rxjs 完全按照您的意愿转移工作。这是一个非常强大的库,建立在非常好的可观察设计模式之上。
【讨论】:
map 运算符和条件。我会为你更新答案。