我需要从
进行观察window.web3.eth.getCoinbase((error, result) => { ... });
这是个好主意吗?
new Observable<string>(o => {
this.w.eth.getCoinbase((err, result) => {
o.next(result);
o.complete();
});
});
答案 0 :(得分:6)
RxJS包含一个bindNodeCallback
可观察的创建者,专门用于从使用节点式回调的异步函数创建observable。
您可以像这样使用它:
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
方法。