RxJS在回调中合并Observable

Gre*_*rey 6 rxjs typescript

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

实现这一目标的最佳方法是什么,以及内部错误和完成链?

Rex*_*Rex 2

我的解决方案:

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)