【发布时间】:2016-06-26 09:54:36
【问题描述】:
我想第一次使用rxjs,但有点卡住了,因为它的行为与我想要的不完全一样:在我的场景中,我想从一个 Promise 中创建一个 observable。但我希望只调用一次承诺(不是在每个订阅上),并且我希望它不会在创建时被调用(推迟到第一个订阅的调用)。
首先我尝试了这个:
var source = Rx.Observable.fromPromise(_this.getMyPromise())
这会导致在创建时调用getMyPromise 函数。这并不令人满意,因为当时我不知道该来源是否真的会被使用。
然后我尝试了:
var source = Rx.Observable.defer(function() { return _this.getMyPromise() })
这会在每次对源进行新订阅时调用getMyPromise 函数。这对 Web 服务器造成了太多不必要的调用。 Rx.Observable.create 函数似乎也有同样的问题。
那么剩下什么或者我缺少什么?
【问题讨论】:
-
所以你只希望它被调用一次,但是如果它在它已经完成之后被调用你想让它做什么呢?
标签: javascript promise rxjs