我将如何实现异步的功能 eachSeries您在哪里迭代数组并手动调用回调以继续迭代?
据我所知,您可以使用 RxJs 的 Observable 迭代数组,如 this :
var array = [1,2,3,4,5];
// Converts an array to an observable sequence
var source = Rx.Observable.from(array);
// Prints out each item
var subscription = source.subscribe(
x => console.log('onNext: %s', x),
e => console.log('onError: %s', e),
() => console.log('onCompleted'));
// => onNext: 1
// => onNext: 2
// => onNext: 3
// => onNext: 4
// => onNext: 5
// => onCompleted
这里 Observable“自动”发出每个数组元素,但是我如何告诉它仅在需要时才继续。就像 RxJS 的主题 next() 方法一样。
事实上,我的现实场景是我需要在观察者回调中调用其他函数。使用异步,我将传递异步的回调以继续迭代该函数并从那里调用它。但我不知道如何使用 Observables 做到这一点。无论如何,它们适合这种情况吗?或者我应该坚持异步?
感谢您的帮助!
最佳答案
您不能使用 iterator/generator ?
这似乎是您想要的用例
您可以像本例中那样迭代它
function *iterator(source) {
let i = 0, len = source.length;
for (i = 0; i < len; i++) {
yield source[i];
}
}
var array = [1,2,3,4,5], iter = iterator( array );
var val = iter.next();
while (!val.done) {
console.log(`${val.value} ( done? ${val.done} )` );
val = iter.next();
}
console.log('done');
关于javascript - 如何在 JavaScript 中使用 Observables 来处理 "eachSeries"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40308285/