【发布时间】:2018-12-10 18:36:34
【问题描述】:
我正在尝试取消承诺,如下所示:
function example(cancel = Promise.reject()) {
return new Promise((resolve, reject) => {
const timer = setTimeout(() => resolve('jack-jack'), 5000);
cancel.then((res) => {
clearTimeout(timer);
reject('cancelled');
}, ()=>{})
});
}
var cancel=Promise.reject();
example(cancel).then((res) => console.log('res handled:' + res)).catch((err) => console.log('err handled:' + err));
console.log('attempting cancellation of promise');
cancel=Promise.resolve();
但是我无法取消它。我在这里做错了什么?
【问题讨论】:
-
如果
cancel被拒绝,cancel.then()不会被执行。 -
@BenjaminGruenbaum 在stackoverflow.com/questions/30233302/… 提供了其他取消活动的方法,但我认为这不是重复的。
标签: javascript ecmascript-6 promise es6-promise