我需要从

window.web3.eth.getCoinbase((error, result) => { ... });

这是个好主意吗?
new Observable<string>(o => {
    this.w.eth.getCoinbase((err, result) => {
        o.next(result);
        o.complete();
    });
});

最佳答案

RxJS包括一个 bindNodeCallback 可观察的创建器,该创建器专门用于从使用Node样式回调的异步函数创建可观察的对象。

您可以这样使用它:

const getCoinbaseAsObservable = Observable.bindNodeCallback(
  callback => this.w.eth.getCoinbase(callback)
);

let coinbaseObservable = getCoinbaseAsObservable();
coinbaseObservable.subscribe(
  result => { /* do something with the result */ },
  error => { /* do something with the error */ }
);

请注意,使用箭头函数来确保使用getCoinbase作为其上下文来调用this.w.eth方法。

关于javascript - 如何通过回调使Observable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48876234/

10-10 22:21