如何鏈接RXJS中的承諾列表?每一個承諾需要執行時,先前解決(工作todo是有狀態的)。如何鏈接RXJS中的承諾列表?
我現在做它的方式原始的感覺:
const workTodo = []; // an array of work
const allWork = Observable.create(observer => {
const next=() => {
const currentTodo = workTodo.shift();
if (currentTodo) {
doTodoAsync(currentTodo)
.then(result => observer.onNext(result))
.then(next);
} else {
observer.onCompleted();
}
};
next();
});
我的想法是這樣的:
const workTodo = []; // an array of work
const allWork = Observable
.fromArray(workTodo)
.flatMap(doTodoAsync);
但在一次基本上執行所有的承諾。
看來工作,但它似乎也簡陋。我想我更喜歡遞歸電話。我覺得應該有一個簡單的操作員來做到這一點。 – nicojs