Синхронизация в Firefox OS (B2G)

Я хотел бы остановить функцию, чтобы дождаться окончания другого раздела кода. Есть ли в Firefox OS какой-либо метод синхронизации, такой как wait() и notify() в Java? Спасибо

1 ответ

JavaScript не имеет этой концепции, но, вообще говоря, использует обратные вызовы (указатели на функции). Немного похоже на анонимные классы в Java. Например, я звоню на веб-сервер:

function callToWebServer(url, doneCallback) {
   // do all kinds of magic, waiting for the web server to reply etc.
   // when done:
   doneCallback();
}

Теперь используя его через:

callToWebServer(function() {
    // this is executed after the call to the web server succeeded
});
alert(1); // this is executed straight away

Мы никогда не можем ждать, поскольку JS является однопоточной средой исполнения. Весь код написан асинхронно.

Другие вопросы по тегам