.: Отказ от ответственности :.Node.js - приостановка выполнения скрипта в другом потоке
Обратите внимание, что я пытаюсь достичь чего-то с node.js, который может противоречить его принципам проектирования. Однако, поскольку node.js идет вразрез с нормой «javascript для клиентской стороны», я также пытаюсь что-то другое здесь. Пожалуйста, несите меня.
.: Фон :.
У меня есть требование, когда Java-скрипты должны быть описательными (читайте от начала до конца) для упрощенных сценариев для упрощенных пользователей. Я также предлагаю возможность асинхронного скриптинга для более продвинутых пользователей.
Я понимаю управляемую событиями технологию node.js и имею решение, основанное на обратных вызовах Async. Теперь я пытаюсь упростить это для наших более простых требований к сценариям.
.: Вопрос :.
Есть ли способ запустить сценарий (используя собственную песочницу), где выполнение может быть приостановлено во время доставки результата.
E.g.
var util = require('util'),
vm = require('vm'),
user = require('user');
vm.runInThisContext('user.WaitForProceed(); console.log('Waiting over');');
console.log('Finished!');
Пользователь - это мой собственный модуль, который будет выполнять ожидание. В основном я хочу, чтобы он сидел и блокировал эту строку в объекте vm, пока он не получил результат. После этого он будет продолжен на консоли console.log.
Результат этого примера не имеет значения, поскольку он также возможен через обратные вызовы. Повествовательная природа сценария примера важнее для этого решения.
- J
Итак, кто провозгласил это так называемый NORM (!?) «javascript для клиентской стороны» - или это то, что вы (и другие) только когда-либо видели его там и заявляли, что единственное, что вы знали, норма"? Во всяком случае, нет никакого способа сделать паузу. Машина JS продолжает запускать цикл событий и останавливается только в том случае, если ничего не запускать. Таким образом, единственный способ остановить - это не иметь больше кода и больше событий (при подключенном прослушивателе событий). Единственное, что вы можете сделать, это дождаться этого события. –
... так что у вас должно быть событие для прослушивания, которое запускается вашим «пользовательским» объектом. Но вы сказали, что у вас уже есть такое решение, поэтому для вас важно уйти от того, как собственно работает JS-движок, тогда вы получите лучшее чувство для этого материала :) Вы должны рассказать нам больше о том, что user.WaitForProcceed() does;) –
«... поэтому для вас важно убрать это из-за того, что сам движок JS действительно работает ...» Норма как другие говорят мне, что «должно работать». Я понимаю ограничения и функциональность узла, однако, как и со всеми разработчиками, я имею дело с людьми, которые этого не делают. Однако они хотят использовать эту систему на своем пути. Я просто исследую, что возможно. – Nevar