Promise和Observable的映射

Posted samwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Promise和Observable的映射相关的知识,希望对你有一定的参考价值。

前言

  1. promise解决了嵌套地狱的问题,Observable解决了promise只有一个结果,和不可以取消的问题。
  2. 使用的是rxjs6版本。
  3. 这篇文章是方便使用Observable的API替换Promise的API。

正常用法

promise
.then(result => )
.catch(error => )
.finally(() => );

observable.subscribe(
  result => ,
  error => ,
  ()=>,  // finally
);

then

promise
.then(result => )
.then(result => )
.then(result => )

import  concat  from 'rxjs';
concat(observable0,observable1,observable2).subscribe(
  result => ,
  error => ,
  ()=>,  // finally
);

Promise.all

Promise.all([promise0, promise1]).then((result)=>);

import  forkJoin  from 'rxjs';
forkJoin([observable0, observable1]).subscribe(result => );

Promise.race

Promise.race([promise0, promise1]).then((result)=>);

import  race  from 'rxjs/observable/race';
race([observable0, observable1]).subscribe(result => );

以上是关于Promise和Observable的映射的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 Observable 和 Promise

RxJava 操作符

角度过滤器 Observable 数组

在 Observable 中调用 Promise

将 promise 与 observable 合并

如何使用 rxjs 和 redux observable 实现 Promise 类型的场景?