typescript - RxJS 在回调中合并 Observable

标签 typescript rxjs

我需要一些帮助来使函数返回可观察值。我有一个函数(我们称它为 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);
})); 

关于typescript - RxJS 在回调中合并 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46061883/

相关文章:

reactjs - 不可变的 JS 列表大小

node.js - 如何在后台连续观看 typescript 文件而不​​阻塞终端?

javascript - TypeScript 中的条件类型

javascript - 如何限制返回输出的 typescript 函数

rx-java - RxJs 中 Observable.expand() 的 RxJava 等价物是什么?

angular - 获取对象后更新 Angular http post 方法的对象

javascript - 如何在顺风CSS中的条件上添加样式

Angular,错误拦截器,在不同的 url 上重试原始请求

javascript - RxJS如何创建或模拟异步?

javascript - Angular 错误: Webpack has been initialised using a configuration object that does not match the API schem