我想调用一个函数来返回一个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'));
我该怎么做?
答案 0 :(得分:2)
您可以执行以下操作:
('hello', 'world')
需要let stream$ = Observable.defer(() => Observable.fromPromise(myPromise()))
.flatMap(promiseResult => myObservable(promiseResult));
stream$.subscribe(obsResult => console.log(obsResult));
来确保每个订阅都调用promise方法,而不是在初始化期间调用一次。