gpt4 book ai didi

javascript - 我怎样才能 promise 这个功能,这样它就不会阻止我的服务器启动?

转载 作者:行者123 更新时间:2023-11-28 11:20:17 25 4
gpt4 key购买 nike

我希望它在找到一分钟后完成。显然这可能需要一分钟的时间:

function syncToMinute(){
let proceed = true;
while(proceed){
const date = new Date();
let seconds = date.getSeconds();
if( seconds === 0){
console.log('Minute Found');
proceed = false;
} else {
// console.log(seconds);
}
}
}

用法是:

syncToMinute().then(() => {
anotherFunc();
})

最佳答案

您可以计算距离下一分钟还剩多少秒(增量),然后设置setTimeout 解决该增量中的 Promise

const syncToMinute = () => {
const delta = 60 - (new Date()).getSeconds()

return new Promise(resolve => setTimeout(resolve, delta * 1000))
}

syncToMinute()
.then(() => {
console.log('Minute')
})

郑重声明,一个while循环;就像你在 OP 中一样,无论事件循环是否包含在 Promise 中,它都会卡住事件循环。将某些内容包装在 Promise 中并不会使它在单独的线程中运行。

关于javascript - 我怎样才能 promise 这个功能,这样它就不会阻止我的服务器启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159202/

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