我目前遇到一个问题,我有一个 javascript 对象试图使用 setInterval 调用其自身内部的私有(private)函数。但是,当我尝试调用它时,它找不到该对象。我有一种感觉,这是因为 window.setInterval 试图从外部调用该对象,但没有对该对象的引用。 FWIW - 我也无法让它与公开的功能一起工作。
基本要求是我可能需要有此对象的多个实例来跟踪同时发生的多个上传。如果您有比当前设计更好的设计,或者可以使当前设计正常工作,那么我会洗耳恭听。
以下代码旨在连续 ping 网络服务以获取文件上传的状态:
var FileUploader = function(uploadKey) {
var intervalId;
var UpdateProgress = function() {
$.get('someWebService', {},
function(json) {
alert('success');
});
};
return {
BeginTrackProgress: function() {
intervalId = window.setInterval('UpdateProgress()', 1500);
},
EndTrackProgress: function() {
clearInterval(intervalId);
}
};
};
这就是它的调用方式:
var fileUploader = new FileUploader('myFileKey');
fileUploader.BeginTrackProgress();
最佳答案
使用这个
intervalId = window.setInterval(UpdateProgress, 1500);
带有文字参数的 setInterval 将在无法访问 UpdateProgress
的全局范围内评估
此值。
关于javascript - 来自对象内部的 window.setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2865332/