像这种代码用node如何才能写的比较不反人类
用同步的话大概是这样的逻辑: var server = connectServer(); try { foreach (var task in tasks) { if (!server.execSync(task)) break; } } catch(Exception e) { … } finally { e.Close(); } 但如果exec方法是用的异步API,并且要保证:
- 任何地方抛出的错误都能被捕获;
- 各个任务依次执行而不是异步执行;
- 如果某个任务失败,后续任务都不要再执行
我用nodejs大概实现了一下,发现异步情况下控制循环这么简单的事情都变得很麻烦,最后代码复杂到我自己都想吐了…求教有没有简单清晰的写法
6 回复
Promise.resolve() .then(() => { foreach (var task in tasks) { if (!server.execSync(task)) break; } return Promise.resolve(); }) .catch((e)=>console.log(e));