Rxjs - 按顺序调用promise和observable

时间:2016-12-19 17:13:44

标签: javascript http promise rxjs observable

我想调用一个函数来返回一个promise,然后将结果传递给另一个将返回一个observable的函数。我需要按顺序执行此操作并将最终结果作为可观察对象,以便我可以订阅。

例如:

// Call a function and return a Promise
myPromise() {}

// Make an http call and return an Observable
myObservable() {}

// Call myPromise() then call myObservable() and return
// an Observable with the result
// *I don't know how this function should be*
myFunction() {}

// Subscription
myFunction().subscribe(
  result => console.log(result),
  error => console.log(error),
  () => console.log('completed'));

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

('hello', 'world')

需要let stream$ = Observable.defer(() => Observable.fromPromise(myPromise())) .flatMap(promiseResult => myObservable(promiseResult)); stream$.subscribe(obsResult => console.log(obsResult)); 来确保每个订阅都调用promise方法,而不是在初始化期间调用一次。