Синхронизация в 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 является однопоточной средой исполнения. Весь код написан асинхронно.