我需要一点帮助,使函数返回一个可观察的。我有一个函数(让我们调用它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);
}));

08-15 15:57