【发布时间】:2014-10-10 07:51:23
【问题描述】:
我正在玩弄 JavaScript 中的 Promise 并试图 Promisify setTimeout 函数:
function timeout(ms) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('timeout done');
}, ms);
});
}
var myPromise=timeout(3000);
myPromise.then(function(result) {
console.log(result); // timeout done
})
相当简单,但我想知道如何在承诺解决之前取消我的超时。 timeout 返回 Promise 对象,因此我无法访问 setTimeout 返回的值,并且无法通过 clearTimeout 取消超时。最好的方法是什么?
顺便说一句,这样做没有真正的目的,我只是想知道如何处理。我也在这里http://plnkr.co/edit/NXFjs1dXWVFNEOeCV1BA?p=preview
【问题讨论】:
-
你也可以使用装饰器,更多细节在这里:stackoverflow.com/a/61242606/1691423
标签: javascript promise settimeout cancellation