javascript - 从外部可以观察到 RxJS 的影响

标签 javascript http asynchronous rxjs observable

我是 RxJS 的初学者,只熟悉基础知识。 情况是: 我有一个可观察的对象,它应该根据需要异步加载一些数据。另一个函数应该创建该需求并要求第一个可观察的加载下一条数据。

像这样:

dataPiece$:Observable<DataPiece> = http.load(this.url + this.pieceUrl)

loadNextPiece(pieceUrl)
{
   this.pieceUrl = pieceUrl;
   //make the observable to automatically load new piece of data 
   //once pieceUrl is updated
}

最佳答案

您可以使用Subject创建包含pieceUrls的流。 。对于每件作品,都将发出请求并使用 switchMap您可以将所有响应合并到一个新流中。

let urlPiece = new Subject();
let dataPiece$:Observable<DataPiece>;

loadNextPiece(pieceUrl)
{
   urlPiece.next(pieceUrl);
}

dataPiece$ = urlPiece.asObservable()
             .switchMap(urlPiece => http.load(this.url + pieceUrl))
                 .map((response) => {
                     // parse response or just return it
                     return response;
                 })
                 .catch(error => {
                    // handle error
                 });


let subscription = dataPiece$.subscribe( (response) => {
    //do something with response
})

关于javascript - 从外部可以观察到 RxJS 的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41555200/

相关文章:

使用 ng-include 包含的 html 文件中的 JavaScript 不执行

java - 如何处理 CompletableFuture 链中的错误响应?

javascript - 如何动态地用文本输入替换物化选择?

javascript - RequireJS:根据环境加载不同的文件

C# 在不使用 WinPcap 的情况下监听 HTTP 请求?

通过 apache_mod_krb 进行 Git 身份验证

c++做套接字关闭自己运行时

javascript - 引入一个单独的微任务队列的动机是什么,事件循环优先于任务队列?

javascript - 异步操作和 Promise——这些编写代码的方式有什么区别

javascript - 使用 jquery ajax 和地理定位解析 xml