rxjs 4.x, Rx.Observable.fromCallback, ikinci parametre olarak kapsamı kabul eder, ancak 5.0, bu yöntem Rx.Observable.bindCallback olarak değiştirilir ve yok kapsam parametresini kabul eder. BindCallback'te kapsam parametresi nasıl eklenir. Örneğin ES6'da.Rx.Observable.bindCallback rxjs kapsamı
class Test {
constructor(input) {
this.input = input;
}
callback(cb) {
return cb(this.input);
}
rx() {
// this works on rx 4.x
// var observable = Rx.Observable.fromCallback(this.callback, this)();
// this doesn't work, because this.callback function doesn't use original this, so cannot get this.input
var observable = Rx.Observable.bindCallback(this.callback)();
// Work around: Rx.Observable.bindCallback(this.callback)();
// var me = this;
// var observable = Rx.Observable.bindCallback((cb) => {me.callback(cb);})();
observable.subscribe(
input => console.log('get data => ' + input),
err => console.log('get error =>' + err),
() => console.log('complete')
);
}
}
new Test(100).rx();
Bu başka bir iştir. Aslında, orijinal işlevini 'callback' işlevini bind ile yeniden yazarsınız. Başka bir deyişle, 'bindCallback' işlevinde kullanacağım birden çok işlev varsa, bunu yapıcıdaki bu işlevlere bağlamalıyım. –