Допустим, у меня есть массив следующим образом:Наблюдаемые - предотвратить OnCompleted для массива
const values = [1,2,3];
создать наблюдаемый из этого массива следующим образом:
const obs = Rx.Observable.from(values);
Я подписываюсь так:
obs.subscribe(
function onNext(result){
console.log('item =>', result);
},
function onError(e){
console.error(e.stack || e);
},
function onCompleted(){
console.log('observable is completed');
}
);
проблема, с которой я столкнулась, заключается в том, что если я вытаскиваю новые элементы в массив следующим образом:
setTimeout(function(){
values.push(4);
values.push(5);
values.push(6);
}, 3000);
эти изделия (4,5,6) не отображаются в обратных вызовах subscribe()!
Итак, мой вопрос в том, как мы можем создать наблюдаемый массив, который может «оставаться открытым», так что если элементы будут перенесены в массив в будущем, что вызовутся обратные вызовы наблюдателя?
Я создал суть этого:
https://gist.github.com/ORESoftware/677ad0a3adf41c04a60829921ba4c4c4
и вот скрипку:
https://jsfiddle.net/mcq40Lmg/
С вашей текущей настройкой наблюдаемый не будет следить за обновлениями массива. Наблюдаемый создается со значениями, которые были изначально. То, что вам нужно, является предметом. –
@AadiDroid благодарит, можете ли вы добавить ответ с более подробной информацией? Я совершенно не знаком с наблюдаемыми –
@AlexanderMills. Я бы предложил сначала изучить основную теорию шаблона наблюдателя и rx. Изучение на примере будет болезненным. – Asti