【发布时间】:2016-11-09 12:27:42
【问题描述】:
目前我正在使用脚本在执行下一个操作之前为我的函数设置 3 秒的超时时间。
function sleep(ms)
{
return new Promise((resolve) => setTimeout(resolve, ms));
}
sleep(3000).then(function()
{
// next action
});
现在我想找到一种方法来提前结束 3 秒超时,例如通过执行鼠标单击。我将如何实施?
【问题讨论】:
-
您为此使用 Promise 有什么特别的原因吗?承诺很棒,但不可取消。
setTimeout返回一个 ID,您可以使用它来取消即将进行的函数调用。 -
您需要清除超时,然后根据需要调用解析器,或者继续前进。
标签: javascript promise cancellation