我需要一点帮助,使函数返回一个可观察的。我有一个函数(让我们调用它mainFunction
),它调用一个异步函数(让我们调用它getAsyncWithCallback
)并执行回调。回调的一部分是返回可观测值的异步调用(让我们调用它getData
)。getAsyncWithCallback
是库的一部分,我无法更改它。
这就是我所拥有的:
mainFunction(){
getAsyncWithCallback(() => {
let myObservable = getData();
});
}
这就是我想做的:
mainFunction().subscribe((data) => {
// data is the data from getData()
});
实现这一点的最佳方法是什么,而链式的错误和完成形式是内在的?
最佳答案
我的解决方案:
mainFunction(): Observable<any> {
return Rx.Observable.create(observer => {
getAsyncWithCallback((): void => {
getData().subscribe(observer);
})
})
}
mainFunction().subscribe((data) => {
console.log(data);
}));