Javascript RxJS-未来插入不可见?
我有一个HTML元素:Javascript RxJS-未来插入不可见?,javascript,rxjs,Javascript,Rxjs,我有一个HTML元素: <ul id="animals"></ul> 现在,动物元素中填充了4个ULs 但是现在我想通过setTimeout添加另一个元素 因此,我补充说: setTimeout(function (){ zooAnimals.push('dddddd'); },4000); 但什么也没发生 问题: 如果其他资源向数组中追加了项,那么我在这里缺少了什么,以及如何使此代码工作 普朗克: 这不是Observable的工作方式,在RxJS中,一切都是一
<ul id="animals"></ul>
现在,动物元素中填充了4个ULs
但是现在我想通过setTimeout添加另一个元素
因此,我补充说:
setTimeout(function (){
zooAnimals.push('dddddd');
},4000);
但什么也没发生
问题:
如果其他资源向数组中追加了项,那么我在这里缺少了什么,以及如何使此代码工作
普朗克:
这不是Observable的工作方式,在RxJS中,一切都是一个流,要发出新数据,您需要使用RxJS api-有很多方法可以实现这一点,其中之一就是使用主题-基本上是Observable和Observable的组合,这意味着您可以在其上发送数据,同时订阅:
const zooAnimals = ['anteater', 'bear', 'cheetah', 'donkey'];
const subject = new Rx.Subject();
const subscriber = subject
.subscribe(
onNext,
function onError(err) {
console.log('Error: ' + err);
},
function onCompleted() {
console.log('no more animals!');
}
);
function onNext(animal) {
const list = document.querySelector('#animals');
console.log('list', list)
const li = document.createElement('li');
li.innerHTML = animal;
list.appendChild(li);
}
zooAnimals.forEach(animal => subject.onNext(animal));
setTimeout(() => subject.onNext("giraffe"), 100);
我还更新了您的plunker:
作为旁注:如果您现在开始学习RxJS,我建议您使用RxJS,这是该库的最新版本。您能看看这里吗?没有得到令人满意的答案
const zooAnimals = ['anteater', 'bear', 'cheetah', 'donkey'];
const subject = new Rx.Subject();
const subscriber = subject
.subscribe(
onNext,
function onError(err) {
console.log('Error: ' + err);
},
function onCompleted() {
console.log('no more animals!');
}
);
function onNext(animal) {
const list = document.querySelector('#animals');
console.log('list', list)
const li = document.createElement('li');
li.innerHTML = animal;
list.appendChild(li);
}
zooAnimals.forEach(animal => subject.onNext(animal));
setTimeout(() => subject.onNext("giraffe"), 100);