在后台脚本中,我向每个标签发送请求。我的问题是如何从回调函数中获取响应来自的选项卡?由于sendRequest是异步的,因此tab.id不能在callbock中使用。
for (var i = 0, tab; tab = tabs[i]; i++) {
chrome.tabs.sendRequest(tab.id, {play:0}, function(response) {
// do something here
// how do i get the tab.id from which the response come from?
});
}
答案 0 :(得分:3)
你需要创建闭包:
for (var i = 0, tab; tab = tabs[i]; i++) {
chrome.tabs.sendRequest(tab.id, {play:0}, (function(tabId) {
return function(response) {
//tabId stores current tab id
console.log("response from:", tabId);
}
})(tab.id));
}