返回介绍

toPromise

发布于 2021-03-12 13:47:49 字数 2671 浏览 932 评论 0 收藏 0

toPromise

函数签名: toPromise() : Promise

将 observable 转换成 promise 。


:warning: toPromise has been deprecated! (RxJS 5.5+)


示例

示例 1: 基础的 Promise

( jsBin | jsFiddle )

// 返回基础的 observable
const sample = val => Rx.Observable.of(val).delay(5000);
// 将基础的 observable 转换成 promise
const example = sample('First Example')
  .toPromise()
  // 输出: 'First Example'
  .then(result => {
    console.log('From Promise:', result);
  });
示例 2: 使用 Promise.all

( jsBin | jsFiddle )

// 返回基础的 observable
const sample = val => Rx.Observable.of(val).delay(5000);
/*
  将每个 observable 转换成 promise 并使用 Promise.all 
  来等待所有 promise 解析完成
  (你或许应该使用 forkJoin,而不是 toPromise)
*/
const example = () => {
  return Promise.all([
    sample('Promise 1').toPromise(),
    sample('Promise 2').toPromise()
  ]);
}
// 输出: ["Promise 1", "Promise 2"]
example().then(val => {
  console.log('Promise.all Result:', val);
});

其他资源


源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/toPromise.ts

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文