У меня есть некоторый псевдокод ниже:
function generateNumber() {
const n = Math.floor(Math.random() * 15);
console.log('Original Number')
console.log(n)
return {
n
};
}
function loop() {
const rand = Math.round(Math.random() * (4000 - 600)) + 600;
setTimeout(() => {
generateNumber();
add_1();
loop();
}, rand);
}
function add_1() {
const x = generateNumber() + 1;
console.log('New Number')
console.log(x)
}
loop()
Я хочу, чтобы add_1()
выполнялся каждый раз, когда generateNumber()
выводит число. Итак, на данный момент generateNumber()
выведет значение, и оно сразу перейдет к add_1()
, где значение 1 добавляется к входящему номеру, который затем отправляется обратно. Функция loop()
предназначена только для получения generateNumber()
для непрерывного вывода значений в разное время. Но на самом деле может случиться так, что я хочу, чтобы датчик предоставлял данные, и каждый раз, когда он отправляет значение, я хочу, чтобы данные go передавались в функцию (т. Е. add_1()
).
Является ли мой единственный вариант иметь вместе generateNumber()
и add_1()
в функции? (Как в случае с псевдокодом выше)
Я хочу, чтобы add_1()
выполнялся каждый раз, когда получал ввод. Желательно, без необходимости add_1()
, чтобы быть в функции, или l oop, с generateNumber()
.
Я предполагаю, что add_1()
должна быть асинхронной c функцией и должен ждать какого-то обещания от generateNumber()
.
В коде вы можете видеть, что нет ничего, что "запускало бы" add_1()
для выполнения, поэтому я считаю, что мой вопрос заключается в том, как создать этот «триггер» основан на выводе из generateNumber()
.