【发布时间】:2018-07-31 04:00:20
【问题描述】:
现在是 2018 年,调制解调器节点的版本是 9 或 10,即 How Can I Wait In Node.js in year 2013 的已接受回答不再好。因此,根据the guidance of meta here,我再次询问。
现在答案的标准是使用现有的 ES6 和 Node.js v9+ 特性,而不需要任何额外的包。
我从@treecoder https://stackoverflow.com/a/44036791/2125837 找到了答案 特别有趣,但我无法让它适用于我的情况:
$ node
> const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
> const waitThenDo = async (howLong, doWhat) => await sleep(howLong*1000).then(doWhat)
> waitThenDo(1, console.log(2))
2
Promise {
<pending>,
...
即waitThenDo 立即进行打印,没有任何延迟。
我做错了什么,和/或,等待/睡觉的最佳最新技术是什么?
【问题讨论】:
-
仅供参考:ping 某人的 @ 表示法仅在他们对此特定问题写了答案或评论时才有效。您不能在这里随便伸手触摸某人;这不是聊天室或社交网站。向一个人提出您的问题也是不合适的。如果您想个性化您的问题,请聘请您可以直接联系的承包商。
-
好的。感谢您的友好解释。
-
doWhat需要是回调函数。 -
试试
async function waitAndLog() { await sleep(1000); console.log(2); }
标签: node.js ecmascript-6 wait sleep