Javascript не компилируется ни во что. Он «оценивается» во время выполнения, точно так же, как PHP & amp; Рубин. Поэтому это скриптовый язык, как PHP / Ruby. (это официальное имя на самом деле является ECMAScript).
«Модель», которой придерживается Node, немного отличается от PHP / Ruby. Node.js использует «цикл событий» (единственный поток), который имеет одну цель - быстро принимать сетевые запросы и обрабатывать их, и по какой-либо причине он сталкивается с операцией, которая занимает некоторое время (запрос API, запрос базы данных - в основном что-либо, связанное с IO (ввод / вывод)), он передает это на фоновый «рабочий» поток и уходит, чтобы сделать что-то еще, пока рабочий поток ждет завершения длинной задачи. Когда это произойдет, основной «цикл событий» примет результаты и продолжит их решать.
PHP / Ruby после модели потоковой передачи. По существу, для каждого входящего сетевого запроса сервер приложений запустит изолированный поток или процесс для обработки запроса. Это не очень хорошо масштабируется, и подход Node упоминается как одна из его основных сильных сторон по сравнению с этой моделью.
Асинхронный означает безстоящий и что соединение является постоянным, а синхронным является (почти) противоположное.
blockquote>No. Синхронные инструкции завершаются в натуральном порядке, от первого до последнего. Асинхронные команды означают, что если шаг в потоке программы занимает относительно много времени, программа продолжит выполнение операций и просто вернется к этой операции по завершении.
Может ли JavaScript быть превращен в синхронный язык?
blockquote>Некоторые операции в JavaScript синхронны. Другие асинхронны. Например:
Операции блокировки:
for(var k = 0; k < 1; k = k - 1;){ alert('this will quickly get annoying and the loop will block execution') alert('this is blocked and will never happen because the above loop is infinite');
Асинхронный:
jQuery.get('/foo', function (result) { alert('This will occur 2nd, asynchronously'); }); alert('This will occur 1st. The above operation was skipped over and execution continued until the above operation completes.');
Это ошибка rootova-android , потому что Google, возможно, изменил сообщение об ошибке при попытке запустить приложение.
Он уже исправлен, но еще не выпущен
Я думаю, что это сработает, если вы примените , этот измените себя на yourAppName/platforms/android/cordova/lib/emulator.js
Изменить
if ((error && error.message &&
(error.message.indexOf('not found') > -1)) ||
(error.message.indexOf('device offline') > -1))
-
if ((error && error.message &&
(error.message.indexOf('not found') > -1)) ||
(error.message.indexOf('device offline') > -1) ||
(error.message.indexOf('device still connecting') > -1))
Другим обходным решением является запуск эмулятора из студии Android, а затем запуск команды cordova для запуска приложения. Таким образом, кордова обнаруживает, что эмулятор уже запущен, и он избегает состояния гонки. Спасибо!
wget https://raw.githubusercontent.com/gegenokitaro/cordova-android/8d497784ac4a40a9689e616cd486c4ed07d3e063/bin/templates/cordova/lib/emulator.js -O platforms/android/cordova/lib/emulator.js
для его автоматизации. – Fmstrat 1 August 2018 в 13:33