在我的chrome扩展中,我正在检查一个函数,该函数可以阻止我的for循环处理,直到它从内容脚本获得响应。下面分享Javascript等待请求在for循环中处理
function abc() {
chrome.tabs.query({'status': 'complete'}, function(tabArray) {
for (var i = 0, tab; tab = tabArray[i]; i++) {
var currentUrl = tab.url;
var tabId = tab.id;
if (currentUrl.match(otherthing)) {
chrome.tabs.sendRequest(tabId, {'type': 'getrequiredthing'},
function(response) {
if (response.isrequiredthind) {
callfunction(tabId);
}
}
);
}
}
});
}
下面的示例代码中,当我在else if
获取匹配的URL我送页面的请求得到了一些信息,如果我的信息是积极的,我需要callfunction。但是在for循环中,tabId迭代速度非常快,即使响应是积极的,它也会使用next(或next)tabId调用callfunction。
你能否提出你的意见,解决这个问题,等待for循环收到这个响应。
谢谢
如果您在继续之前需要每个请求的响应,请尝试链接回调代替使用for循环。 –