Как построить функцию, которая будет постоянно излучать число в JavaScript? - PullRequest
0 голосов
/ 01 ноября 2018

Есть ли способ создать функцию, которая будет работать в фоновом режиме и будет постоянно генерировать случайное число.

Однако остальная часть кода будет продолжать выполняться, и другие биты смогут подключаться к этой функции и извлекать случайное число в любое время.

// So this runs and keeps running forever.
function emit(){
    while(true){    
        return Math.random().toFixed(4);
    }
};

// This bit is capable of tapping into the emitted data and return
// the values at any time.
function listen(){
     console.log(emit);
};

Возможно ли это сделать без использования setInterval()?

--- РЕДАКТИРОВАТЬ ---

Цель состоит в том, чтобы вставить это в веб-сокет.

wss.on('connection', () => {
    wss.clients.forEach(function(client) {
        // Maybe a bit like fetch the current result of the emitter
        // and send to the client.  
        client.send(*/ listen and stream to the client */);
    }
}

Таким образом, клиент получает постоянный поток чисел:

0.2344, 0.9425, 0.5385, 0.2357 ...

1 Ответ

0 голосов
/ 01 ноября 2018

Есть ли способ создать функцию, которая будет работать в фоновом режиме и будет постоянно генерировать случайное число.

Да, это возможно, запустите новый поток с WebWorkers в браузерах или spawnProcess на NodeJS, затем выполните цикл while(true).

Однако остальная часть кода будет продолжать выполняться, и другие биты смогут подключаться к этой функции и извлекать случайное число в любое время

Вы можете записать данные в SharedBuffer из другого потока и прочитать их из основного процесса, когда захотите.


Но реальный вопрос должен быть:

Имеет ли это смысл?

Если вы хотите тратить энергию и время на обработку без причины, это, безусловно, имеет смысл. Если не просто сгенерировать данные, если они вам действительно нужны.

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