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



我是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
}

您可以使用主题创建包含 pieceUrl 的流。对于每个部分,请求都将发出,并且使用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
})

最新更新