【发布时间】:2013-06-05 18:34:43
【问题描述】:
示例代码:
var isExecutionOver = false,
myFunction = function() {
// does some asynchronous stuff and sets isExecutionOver to true
// when the asynchronous job is over.
};
myFunction();
// Kill myFunction if it takes more than 3 seconds
setTimeout(function() {
if(!isExecutionOver) {
// How do I kill myFunction?
}
}, 3*1000);
在上面的 sn-p 中,如果 myFunction 无法在给定的时间内(在这种情况下为 3 秒)完成工作,我试图杀死(或者换句话说,停止执行)。
PS:请假设我无法控制 myFunction 定义。我唯一可以工作的地方就是setTimeout里面。
【问题讨论】:
-
视情况而定。正在发生什么异步事情?如果是 XHR 请求,您可以
.abort()它。需要明确的是,myFunction将在异步工作完成之前很久就退出。您要取消的是由myFunction启动的任何未决异步操作,而不是myFunction本身。 -
我不知道你去了哪里,但是这里没有足够的信息来准确回答你的问题,
标签: javascript asynchronous kill