Я хотел использовать rxjs
в первый раз, но я немного застрял, потому что он не ведет себя точно так, как я хочу: в моем сценарии я хочу создать наблюдаемое из обещания , Но я хочу, чтобы обещание вызывалось только один раз (не на каждой подписке), и я хочу, чтобы он не вызывался во время создания (отложите вызов до первой подписки).rxjs, используя обещание только один раз на подписке
Сначала я попытался это:
var source = Rx.Observable.fromPromise(_this.getMyPromise())
, который вызывает вызов функции getMyPromise
прямо на момент создания. Это не удовлетворяет, потому что в то время я не знаю, будет ли источник действительно использоваться.
Тогда я попробовал:
var source = Rx.Observable.defer(function() { return _this.getMyPromise() })
, который вызывает вызов функции getMyPromise
каждый раз, когда создается новая подписка делается на источник. Это делает слишком много ненужных вызовов на веб-сервер. Функция Rx.Observable.create
, похоже, имеет такую же проблему.
Итак, что осталось или чего мне не хватает?
Таким образом, вы хотите, чтобы он был вызван один раз, но что вы хотите, если он вызывается после того, как он уже завершен? – John