javascript - 在 Angular 中使用 Observable 时如何将函数附加到观察者?

标签 javascript angular observable

我知道如何向观察者发出一个值并使用 observable 订阅它们,如下所示

var observable = new Observable(observer => {
      observer.next(1);
      observer.next(2);
      observer.next(3);
    }).subscribe((success) => {
      console.log(success);
    })

但是如果我想对这个函数做同样的事情,即。我有这样的东西,那么我怎样才能实现它

 var observable = new Observable(observer => {
      observer.next(function () {
        setTimeout(() => {
          1
        }, 1000)
      })
      observer.next(function () {
        setTimeout(() => {
          2
        }, 1000)
      })
      observer.next(function () {
        setTimeout(() => {
          3
        }, 1000)
      })
    }).subscribe((success) => {
      console.log(success);
    })

有没有可能,我要做的就是调用一系列的异步函数,我该怎么做

更新

我想按顺序调用一系列asnc函数,即。第二个函数只能在第一个函数操作完成后调用,依此类推

最佳答案

你可以做这样的事情。这只是这里的基本原理。您可以调用异步而不是发出静态值。

var ParentObservable = new Observable();

ParentObservable.subscribe((res) => {
  //res is your response from async calls
  //Call asyncCall again from here
})

function asyncCall(){
  this.http.get("your URL").map((res)=> res.json()).subscribe((res)=>{
      ParentObservable.next(res);
  })
}

关于javascript - 在 Angular 中使用 Observable 时如何将函数附加到观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47649429/

相关文章:

javascript - setInterval 的变化间隔

node.js - 如何修复 Windows 10 中的 "npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142"错误?

angular - 为什么 Validator 实例中的 registerOnValidatorChange 会覆盖当前的 onChange 处理程序?

javascript - 如何在不触发计算的情况下更新计算中的可观察对象?

使用 `ReferenceWritableKeyPath ` 的 Swift 编译器段错误

javascript - django ajax请求获取选定的索引

javascript - 如何使用javascript检查它是否是一个blob url

javascript - 新窗口启动后超时

node.js - SPA+API OAuth流程,用什么?

angular - ionic 事件替换为 Angular Observables