Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RxJS-未来插入不可见?_Javascript_Rxjs - Fatal编程技术网

Javascript RxJS-未来插入不可见?

Javascript RxJS-未来插入不可见?,javascript,rxjs,Javascript,Rxjs,我有一个HTML元素: <ul id="animals"></ul> 现在,动物元素中填充了4个ULs 但是现在我想通过setTimeout添加另一个元素 因此,我补充说: setTimeout(function (){ zooAnimals.push('dddddd'); },4000); 但什么也没发生 问题: 如果其他资源向数组中追加了项,那么我在这里缺少了什么,以及如何使此代码工作 普朗克: 这不是Observable的工作方式,在RxJS中,一切都是一

我有一个HTML元素:

 <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);