我需要一些帮助,使函数返回一个可观察的.我有一个函数(让我们调用它mainFunction),它调用异步函数(让我们调用它getAsyncWithCallback)并执行回调.回调的一部分是一个异步调用,它返回一个observable(让我们调用它getData).
getAsyncWithCallback 是图书馆的一部分,我无法改变它.
这就是我所拥有的:
mainFunction(){
getAsyncWithCallback(() => {
let myObservable = getData();
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的:
mainFunction().subscribe((data) => {
// data is the data from getData()
});
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么,以及内部错误和完成链?
我的解决方案:
mainFunction(): Observable<any> {
return Rx.Observable.create(observer => {
getAsyncWithCallback((): void => {
getData().subscribe(observer);
})
})
}
mainFunction().subscribe((data) => {
console.log(data);
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |