- fromPromise
- 签名:
fromPromise(promise: Promise, scheduler: Scheduler): Observable
- 签名:
- 创建由 promise 转换而来的 observable,并发出 promise 的结果。
- 示例
- 示例 1: 将 promise 转换成 observable 并捕获错误
- 示例
- 其他资源
fromPromise
签名: fromPromise(promise: Promise, scheduler: Scheduler): Observable
创建由 promise 转换而来的 observable,并发出 promise 的结果。
打平类操作符通常可以接收 promises 而不需要 observable 包装!
你还可以使用 Observable.from 达到同样的效果!

示例
示例 1: 将 promise 转换成 observable 并捕获错误
( jsBin |
jsFiddle )
import { of } from 'rxjs/observable/of';import { fromPromise } from 'rxjs/observable/fromPromise';import { mergeMap, catchError } from 'rxjs/operators';// 基于输入来决定是 resolve 还是 reject 的示例 promiseconst myPromise = willReject => {return new Promise((resolve, reject) => {if (willReject) {reject('Rejected!');}resolve('Resolved!');});};// 先发出 true,然后是 falseconst source = of(true, false);const example = source.pipe(mergeMap(val =>fromPromise(myPromise(val)).pipe(// 捕获并优雅地处理 reject 的结果catchError(error => of(`Error: ${error}`)))));// 输出: 'Error: Rejected!', 'Resolved!'const subscribe = example.subscribe(val => console.log(val));
其他资源
- fromPromise
- 官方文档 - 创建操作符: from, fromArray, fromPromise
- André Staltz - fromPromise - 指南
源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/fromPromise.ts
