Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让函数在每次从另一个函数接收输出时执行?(NodeJS)_Javascript_Node.js_Function - Fatal编程技术网

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;
};