gpt4 book ai didi

typescript - 如何在 TypeScript 的 ReactiveX/rxjs 5 中使用 exhaustMap

转载 作者:太空狗 更新时间:2023-10-29 17:35:04 24 4
gpt4 key购买 nike

我想知道如何处理一个数组,其中每个值都按照指定的相同顺序返回一个 Promise。例如,假设我想按此顺序调用多个 Ajax 调用:

var array = [
'http://example.org',
'http://otherexample.org',
'http://anotherexample.org',
];

基本相同的问题:How can I use RxJs to hold off any requests for an AJAX call until the previous one resolves,建议使用 flatMapFirst

因为我在使用 rxjs@5.0.0-beta.2 的 TypeScript 中使用 Angular2(此时 beta-15),所以我发现 flatMapFirst has been renamed to exhaustMap

但是这个运算符没有在 Observable.ts 中列出,所以我不能使用它。它甚至不存在于 RxJS https://code.angularjs.org/2.0.0-beta.15/Rx.js 的捆绑版本中。

那么,我该如何使用它呢?或者还有其他方法可以满足我的需要吗?它的 package.json 列出了很多构建脚本,我应该强制它使用其中之一吗?

编辑:我应该提到我使用的是 ReactiveX/rxjs 库,而不是 Reactive-Extensions/RxJS

最佳答案

Operator concatMap()做了工作:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/concatMap';

var urls = [
'https://httpbin.org/get?1',
'https://httpbin.org/get?2',
'https://httpbin.org/get?3',
'https://httpbin.org/get?4',
'https://httpbin.org/get?5',
];

Observable.from(this.urls)
.concatMap(url => http.get(url))
.subscribe(response => console.log(response.url))
;

这会打印到控制台:

https://httpbin.org/get?1
https://httpbin.org/get?2
https://httpbin.org/get?3
https://httpbin.org/get?4
https://httpbin.org/get?5

关于typescript - 如何在 TypeScript 的 ReactiveX/rxjs 5 中使用 exhaustMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36713531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com