为什么setInterval 只执行了一次??
代码如下
<script language=javascript>
$(function () {
var test = {
deg: function (type) {
alert(type);
}
}
setInterval(test.deg(12), 1000);
});
</script>
解决办法:
setInterval(function () { test.deg(12)}, 1000);这样就可以了。
当条件达到临界值时,取消
window.clearInterval(clock);
当然实现这种轮询的另一种思路是,使用递归,然后设置一个休眠时间。
var url = 'rest/services/Tools/submitJob';
var clock=null;
ajaxfunc(url, 'POST', restData, function (res) { //运行分析
console.log(res.jobId);
var jobId = res.jobId;
clock = window.setInterval(function () { result(jobId)}, 5000);
});
var result = function(jobId) {
var url = adminURL + "rest/services/Tools/jobs/" + jobId;
$.ajax({
type: "POST",
url: url,
dataType: 'json',
data: {
f: 'json',
token: token
},
success: function (data) {
var jobStatus = data.jobStatus;
if(jobStatus =='esriJobSucceeded'){
var output = url + '/results/output';
var resultOutput;
$.ajax({
type: "POST",
url: output,
dataType: 'json',
data: {
f: 'json',
token: token
},
success: function (data) {
resultOutput = data.value.url;
alert(resultOutput)
window.clearInterval(clock);
},
error:function(){
alert("error")
window.clearInterval(clock);
}
});
}
if(jobStatus =='esriJobFailed'){
alert("esriJobFailed")
window.clearInterval(clock);
}
},
error: function () {
alert("error")
window.clearInterval(clock);
}
});
};