【发布时间】:2016-01-11 18:17:58
【问题描述】:
这段代码给了我这个错误
Warning: a promise was created in a handler but none were returned from it
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 丢球,你真的什么都不做。
标签: javascript promise bluebird rxjs