gpt4 book ai didi

javascript - 如何让一个函数在每次收到另一个函数的输出时执行? ( Node JS)

转载 作者:行者123 更新时间:2023-12-02 21:58:32 25 4
gpt4 key购买 nike

下面有一些伪代码:

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()

我想要的是每次 generateNumber() 输出数字时执行 add_1() 。因此,现在,generateNumber() 将输出一个值,并立即转到 add_1(),其中值 1 会添加到传入的号码中,然后发送退出。 loop() 函数只是为了让 generateNumber() 在不同时间连续输出值。但实际上,我可能希望传感器提供数据,并且每次发送值时,我希望数据进入函数(即 add_1())。

generateNumber()add_1() 放在一个函数中是我唯一的选择吗? (上面的伪代码就是这种情况)

我希望它能够在每次获取输入时执行 add_1()最好不需要 add_1()generateNumber() 一起位于函数或循环中。

我的猜测是 add_1() 必须是一个异步函数,并且必须等待 generateNumber() 的某种 promise 。

您可以在代码中看到,没有任何内容可以“触发”add_1() 执行,所以我相信我的问题是如何根据 的输出创建这个“触发器” >generateNumber().

最佳答案

猴子补丁generateNumber()

var oldGenerateNumber = generateNumber;
generateNumber = function() {
const ret = oldGenerateNumber();
add_1();
return ret;
};

关于javascript - 如何让一个函数在每次收到另一个函数的输出时执行? ( Node JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59941503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com