gpt4 book ai didi

javascript - 我如何在 Node.js (JavaScript) 中等待? l 需要暂停一段时间

转载 作者:IT老高 更新时间:2023-10-28 13:11:34 30 4
gpt4 key购买 nike

我正在为个人需求开发控制台脚本。我需要能够暂停很长时间,但是,根据我的研究,Node.js 无法按要求停止。一段时间后,阅读用户的信息变得越来越困难......我已经看到了一些代码,但我相信他们必须在其中包含其他代码才能使其工作,例如:

    setTimeout(function() {
}, 3000);

但是,我需要这行代码之后的所有内容在一段时间后执行。

例如,

    // start of code
console.log('Welcome to my console,');

some-wait-code-here-for-ten-seconds...

console.log('Blah blah blah blah extra-blah');
// end of code

我也见过类似的东西

    yield sleep(2000);

但 Node.js 无法识别这一点。

我怎样才能实现这种延长的暂停?

最佳答案

2021 年 1 月更新:您甚至可以在 Node REPL 交互中使用 --experimental-repl-await 标志

$ node --experimental-repl-await
> const delay = ms => new Promise(resolve => setTimeout(resolve, ms))
> await delay(1000) /// waiting 1 second.

旧问题的新答案。今天(2017 年 1 月2019 年 6 月)要容易得多。您可以使用 new async/await syntax .例如:

async function init() {
console.log(1);
await sleep(1000);
console.log(2);
}

function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}

要使用 async/await 开箱即用,无需安装和插件,您必须使用 node-v7 或 node-v8,使用 --harmony 旗帜。

2019 年 6 月更新:通过使用最新版本的 NodeJS,您可以立即使用它。无需提供命令行参数。今天甚至连谷歌浏览器都支持它。

2020 年 5 月更新:很快您将能够在异步函数之外使用 await 语法。在这个例子中的顶层

await sleep(1000)
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}

The proposal is in stage 3 .您现在可以通过使用 webpack 5 (alpha) 来使用它,

更多信息:

关于javascript - 我如何在 Node.js (JavaScript) 中等待? l 需要暂停一段时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249506/

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