Javascript 如何让函数在每次从另一个函数接收输出时执行?(NodeJS)
下面是一些伪代码:Javascript 如何让函数在每次从另一个函数接收输出时执行?(NodeJS),javascript,node.js,function,Javascript,Node.js,Function,下面是一些伪代码: 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
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()
在不同的时间连续输出值。但实际上,我可能希望传感器提供数据,每次它发送值时,我都希望数据进入函数(即add_1()
)
是将generateNumber()
和add_1()
放在一个函数中的唯一选项吗?(上面的伪代码就是这种情况)
我希望它在每次获得输入时都执行add_1()
最好不需要使用generateNumber()
将_1()添加到函数或循环中
我的猜测是add_1()
必须是一个异步函数,并且必须等待generateNumber()
的某种承诺
您可以在代码中看到,没有什么可以“触发”
add_1()
如果您想触发函数generate\u number()
返回一个对象,请研究使用。为什么要尝试向其添加1?为什么不使用从generateNumber()返回的值loop()
add_1()
生成的数字与loop()
中的数字不同。执行函数时没有自动事件。为什么不修改generateNumber()
来调用add_1()
?如果无法更改generateNumber()
,则可以对其进行修补。
var oldGenerateNumber = generateNumber;
generateNumber = function() {
const ret = oldGenerateNumber();
add_1();
return ret;
};