【发布时间】:2018-01-29 11:48:17
【问题描述】:
我有一系列的承诺链,需要足够的时间才能完成。以下是示例链设置:
myJob1()
.then(myJob2)
.then(myJob3)
.then(myJob4)
.then(myJob5)
.then(myJob6)
.catch(myJobError);
在此作业运行的同时,如果 UI 上的人想取消它,如何在它的任何阶段/功能执行中取消它?
可能的解决方案是什么?
【问题讨论】:
-
真的需要更多信息,例如。尤其是当您说客户时。您的客户端是否有某种形式的 RPC?取消 Promise 链很容易,但将命令发送到后端是棘手的部分。
-
您无法取消,但可以拒绝。这将阻止 then 的其余部分被调用。您必须在每项工作中测试某些内容,如果该测试通过,您将返回一个新的拒绝承诺,即
return Promise.reject('reason')
标签: javascript node.js promise cancellation