我想将数据发送到后端(py(,并希望显示加载图标,直到完成该过程。我还将后端中的状态变量设置为"0";工作";或";完成";检查运行情况。我的问题是如何从js中的setInterval每隔3秒检查一次状态。
runPy() {
this.request.run(this.values).then(id=>{
this.id = id
this.checkloading(this.id)})
}
checkloading(id) {
this.interval = setInterval(function()
{
this.request.status(id).then(status=>{
this.status = status
if(status == "Working"){this.loading = true}
else{this.loading = false
clearInterval(this.interval)
}
});
}, 3000);
}
此外,我意识到问题是:id未定义,当我在runPy((中设置this.id=id并提醒它时,它会提醒:未定义!有什么想法吗?
将function(){}
更改为箭头函数,使this
的值仍指向该类。
checkloading(id) {
this.interval = setInterval(() => {
// now this will work and the this keyword will be pointing to the class
this.request.status(id).then(status=>{
this.status = status
if(status == "Working"){this.loading = true}
else{this.loading = false
clearInterval(this.interval)
}
});
}, 3000);
给你一本好书:https://www.codementor.io/@dariocarciamoya/用箭头函数gcpjwfyuc 在javascript中理解这一点