У меня есть две переменные, которые устанавливаются в «возвращаемое значение» функций, эти функции должны получать URL-адрес вкладки и ссылку на фактический объект табуляции и хранить их в переменных. У меня есть некоторый код:Расширение Chrome: вкладки запросов async
function init(){
var url = getUrl();
var tab = getTab();
}
function getUrl(){
var tablink;
chrome.tabs.query({currentWindow: true, active: true},function(tabs){
tablink = tabs[0].url;
return tablink;
});
}
function getTab(){
var tab;
chrome.tabs.query({currentWindow: true, active: true},function(tabs){
tab = tabs[0];
});
return tab;
}
Почему, URL не определен, хотя я возвращаюсь к URL из функции обратного вызова, но когда я возвращаюсь вкладку из-за пределов обратного вызова, он возвращает в порядке, так как хотя это был синхронный звонок. У меня есть screenshot этого явления в отладчике. Я стараюсь научиться разбираться с асинхронными методами в хроме, но это очень запутанно. Может ли кто-нибудь объяснить это поведение мне?
возможно дубликат [После вызова chrome.tabs.query, результаты не доступны] (http://stackoverflow.com/questions/11688171/after-calling-chrome-tabs-query-the- results-are-not-available) –