gpt4 book ai didi

javascript - 如何使用 TypeScript 和 RxJs 串行执行一系列指令?

转载 作者:行者123 更新时间:2023-12-02 14:38:06 26 4
gpt4 key购买 nike

我有Array,其中类Instruction 有一个返回Observable 的execute() 函数。 execute 函数将执行异步任务,完成后它将调用 myObserver.complete() ,这将触发列表中的下一条指令以调用其execute() 函数。我不知道该怎么做。

我正在实现所有这些,因此我愿意接受任何建议,包括改变我设置教学类(class)的方式。主要目标是我需要顺序运行每个指令异步执行方法中的代码。当指令执行完毕后,继续执行列表中的下一个指令,直到所有内容都执行完毕。

目前,我通过递归来完成此操作,我传入指令列表,然后传递我当前正在处理的指令的索引。完成后,我将索引加 1 并再次调用自身。虽然这可行,但必须有更好的方法,但我还没有想出一个。想法?

最佳答案

如果我理解得很好,你可以尝试这样的事情:

Rx.Observable.from(yourArray).concatMap(function executeInstruction(item){
return item.execute(...)
})

这符合您的用例吗?这假设您的 execute 函数位于每个项目上。 concatMap 将订阅 executeInstruction 返回的每个 observable,并且仅当前一个 observable 完成时才会订阅与下一项对应的下一个 observable。文档 here

更新:Typescript 方式:

Observable.from(instructions, (instruction) => {
return instruction;
}).concatMap((instruction) => {
return instruction.execute();
});

关于javascript - 如何使用 TypeScript 和 RxJs 串行执行一系列指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37263070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com