javascript – 在RxJS中链接多个flatMap运算符时,如何摆脱Bluebird警告?

这段代码给了我这个错误

警告:在处理程序中创建了一个promise,但没有从它返回

var Observable = Rx.Observable;

var source = Observable.range(0, 3);

source
  .flatMap(item => {
    console.log('getting first promise');
    return Observable.fromPromise(
      new Promise((resolve, reject) => {
        resolve(5)
      })
    );
  })
  .flatMap(item => {
    console.log('item ==', item);
    console.log('getting second promise');
    return Observable.fromPromise(
      new Promise((resolve, reject) => {
        resolve(4)
      })
    );

  })
  .subscribe(x => console.log('sub1 == ', x));

如果我删除第二个flatMap运算符,我不会得到错误.为什么第二个RxJS flatMap运算符会导致Bluebird警告,但第一个flatMap不是?当然,我需要解决的是如何使用Bluebird Promises?

这是一个展示此问题的Plunk,您将在Chrome的开发者控制台中看到警告

解决方法:

不能说,但该消息来自蓝鸟,而不是来自Rxjs.你可以看看这里:https://github.com/petkaantonov/bluebird/issues/854.这似乎是你在那里处理的完全相同的问题.

上一篇:javascript – 使用RxJs遍历node.js中的目录树


下一篇:javascript – 使用运算符扩展RxJS Observable类