Javascript 如何检查回调是否挂起?
我正在学习JavaScript,任务是编写一个公共函数来检查是否进行了异步调用,但响应仍然挂起(即进程正在“运行”)。如果进程正在进行,则需要返回Javascript 如何检查回调是否挂起?,javascript,Javascript,我正在学习JavaScript,任务是编写一个公共函数来检查是否进行了异步调用,但响应仍然挂起(即进程正在“运行”)。如果进程正在进行,则需要返回true;如果进程未进行,则返回false function Machine() { function onReady() { alert( 'ready!' ); } this.setOnReady = function(newOnReady) { onReady = newOnReady; }; this.run
true
;如果进程未进行,则返回false
function Machine() {
function onReady() {
alert( 'ready!' );
}
this.setOnReady = function(newOnReady) {
onReady = newOnReady;
};
this.run = function() {
setTimeout(function() {
onReady();
}, 10000);
};
}
var machine = new Machine();
alert('before the run: ' + machine.isRunning()); // before: false
machine.run();
alert('is running: ' + machine.isRunning()); // is running: true
machine.setOnReady(function() {
alert("after: " + machine.isRunning()); // after: false
});
在run()中,将isRunning()方法返回的对象上的标志设置为true(通过this.running=true;
)
完成运行后,将其设置回false。在run()中,将isRunning()方法返回的对象上的标志设置为true(通过this.running=true;
)
完成运行后,将其设置回false。以下是如何对其进行编码:
函数机(){
//添加这个私有变量
var isRunning=false;
函数onReady(){
警惕('ready!');
}
this.setOnReady=函数(newOnReady){
onReady=newOnReady;
};
this.run=函数(){
isRunning=true;//设置标志
setTimeout(函数(){
isRunning=false;//清除标志
onReady();
},2000);//2秒钟,我没有耐心!
};
//添加此方法:
this.isRunning=函数(){
返回正在运行;
}
}
var machine=新机器();
console.log('运行前:'+machine.isRunning());//前:假
machine.run();
console.log('正在运行:'+machine.isRunning());//正在跑步:是的
machine.setOnReady(函数(){
console.log(“after:+machine.isRunning());//after:false
});代码>以下是如何对其进行编码:
函数机(){
//添加这个私有变量
var isRunning=false;
函数onReady(){
警惕('ready!');
}
this.setOnReady=函数(newOnReady){
onReady=newOnReady;
};
this.run=函数(){
isRunning=true;//设置标志
setTimeout(函数(){
isRunning=false;//清除标志
onReady();
},2000);//2秒钟,我没有耐心!
};
//添加此方法:
this.isRunning=函数(){
返回正在运行;
}
}
var machine=新机器();
console.log('运行前:'+machine.isRunning());//前:假
machine.run();
console.log('正在运行:'+machine.isRunning());//正在跑步:是的
machine.setOnReady(函数(){
console.log(“after:+machine.isRunning());//after:false
});代码>我不太明白你的意思,但你的回答把我逼到了这个地步:函数机器(){var running=false;函数onReady(){alert('ready!');}this.setOnReady=function(newOnReady){onReady=newOnReady;};this.run=function(){running=true;setTimeout(function()){onReady();},1000);};this.isRunning=function(){return running;}}
Nice!这似乎与@trincot的答案非常相似,所以请随意接受他们的答案:)我不太理解你,但你的答案把我推到了这一步:function Machine(){var running=false;function onReady(){alert('ready!');}this.setOnReady=function(newOnReady){onReady=newOnReady;};this.run=function(){running=true;setTimeout(function(){onReady();},1000);};this.isRunning=function(){return running;}
Nice!这似乎与@trincot的答案非常相似,所以请随意接受他们的答案:)非常感谢!非常感谢!对不起,先生,但我的格式和问题对我来说更清楚,我想对东欧人来说,他们不太会说英语。对不起,先生,但我的格式和问题对我来说更清楚,我不太喜欢这是东欧人的一个想法,他们不太会说英语。