У меня возникли проблемы с использованием функции rxjs Observable.concat с машинописным текстом. Получение ошибки «Невозможно прочитать свойство» применить «неопределенного»Typcript rxjs Наблюдаемый массив concat
Проблема, кажется, только в машинописных текстах, а может быть специфичной для rxjs версии 5 concat. Код, похоже, работает с rxjs V4.
Вот упрощенная версия кода, иллюстрирующего проблему ...
/*jshint esnext: true */
console.clear();
console.log('started');
class test{
observableArray: Observable<any>[]=[];
constructor(){
this.observableArray.push(Rx.Observable.return("Line 1"));
this.observableArray.push(Rx.Observable.return(56));
this.observableArray.push(Rx.Observable.create((observer)=>{
setTimeout(()=>{
try{
observer.onNext("Waited for");
observer.onCompleted();
}
catch(err){
observer.onError(err);
}
},3000);
}));
}
run(){
// ... indeterminate number of observables pushed into array.
// The problem lies below
var source = Rx.Observable.concat(...this.observableArray);
// seems to transpile into js: source = Observable_1.Observable.concat.apply(Observable_1.Observable, this.observableArray);
// In the chrome debugger I am getting error: Cannot read property 'apply' of undefined
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.error('Error: ' + err);
},
function() {
console.log('Completed');
});
}
}
}
Вот jsbin: https://jsbin.com/naxeba/edit?html,js,console,output