gpt4 book ai didi

javascript - 在 promise 中向 setTimeout 添加另一个延迟

转载 作者:行者123 更新时间:2023-11-29 17:46:43 27 4
gpt4 key购买 nike

我有一个小脚本可以按顺序打开和关闭 3 个 LED。它运作良好,但我想延迟每次点亮之间的时间。

例如,我希望红色 LED 亮起然后熄灭 2 秒,然后再转到下一个 LED。

function delay() {
return new Promise(resolve => setTimeout(resolve, 500)); //the delay between LED light ups. I'd like to add a delay between the delay.
}

async function delayedLog(item) {
await delay();
console.log(item);
LED_RED.off();
LED_GREEN.off();
LED_YELLOW.off();
}

async function processArray(array) {
for (const item of array) {
if(item===1){LED_RED.on();}

if(item===2){LED_GREEN.on();}

if(item===3){LED_YELLOW.on();}
await delayedLog(item);

}
console.log('Done!');
}

processArray([1,3,1,3,1,2,3,2,1,2,1,2,3,2,1,3]); //numbers represent LEDs. 1 is red, 2 is green and 3 is yellow.

});

最佳答案

首先,您可以修改延迟函数以接受具有延迟持续时间的参数:

function delay(duration) {
return new Promise(resolve => setTimeout(resolve, duration));
}

并且由于您使用的是 async/await 语法,因此您可以在任何地方添加延迟:

async function delayedLog(item) {
await delay(500);
console.log(item);
LED_RED.off();
await delay(2000);
LED_GREEN.off();
await delay(1000);
LED_YELLOW.off();
} // use your imagination

关于javascript - 在 promise 中向 setTimeout 添加另一个延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48716750/

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