У меня последняя версия Chrome, я создаю расширение.
Рассмотрим следующий код:
var returnTab = false; // init the variable as false
var createNewTab = function(){
returnTab = false; // make sure we start with this var as false
chrome.tabs.create({url:'http://www.google.com/'}, function(tab){
returnTab = tab; // put the returntab object inside the variable
});
while(returntab===false){ }; // wait for the tab to be created.
return returnTab;
};
c = createNewTab();
Все в порядке, и это должно работать; за исключением того, что это не так. Функция createNewTab() застревает в бесконечном цикле, и переменная returnTab никогда не получает возвращаемое значение обратного вызова. Если я сделаю это так, как должен, без цикла ожидания все будет работать, и функция обратного вызова будет выполняться так, как должна.
Почему это не работает?
Л.Э.: Похоже, функция обратного вызова ожидает завершения цикла. Кто-нибудь знает способ, чтобы вся функция была занята, пока не сработает функция обратного вызова?