我知道如何向观察者发出一个值并使用 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/