Код работает только когда я ставлю точку останова - PullRequest
3 голосов
/ 05 января 2011

Я получил следующий код (в отдельном файле с именем page.js):

var page = new function() {

    this.getImdbID = function(){
        var imdbid = '';
        chrome.tabs.getSelected(null, function(tab) {
                 imdbid='0944835';
            }); 
            return imdbid;
    };
}

Который вызывается с помощью следующего кода (который находится в background.html).

var imdbid = page.getImdbID();

Этот код работает только тогда, когда я ставлю точку останова на "return imdbid;"строка.Когда я пропускаю точку останова, она возвращает только пустую строку.Я что-то пропустил?

1 Ответ

5 голосов
/ 05 января 2011

Тот факт, что это работает, когда вы устанавливаете точку останова, указывает на проблему с синхронизацией.

В этом случае я бы предположил, что getSelected - это асинхронная операция (следовательно, почему она принимает обратный вызов), и таквам нужно будет дождаться его завершения и выполнения обратного вызова, прежде чем переменная получит желаемое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...