ES8大法好——JavaScript里用上真正的延时函数sleep()
我是业余编程爱好者,写代码的时间不多,每次写还要从掌握的近十种语言里现调取知识(现在脚本写的多,正儿八经的语言不写了),非常痛苦。JavaScript是函数式的语言,和我们一般的观念认识不大一样,写起来就麻烦。让我一直觉得困难的就是延时函数。
Background
以前实现延时是用setTimeout()
,逻辑类似下面的样子
1 | function next() { |
这样每次执行自己,实在是让人不爽,我还记不住。
2017年的解决方案
详细的讨论见stackoverflow上的讨论,代码是这样的
1 | function sleep(ms) { |
然后await sleep(1000)
就可以睡一秒。需要强调的是,使用await sleep()
必须在async
的函数里才能用。
箭头函数
箭头函数是ES6里有的,上面的代码里也用到了。要用sleep()
必须在async
的函数里,如果我要把async
和箭头函数结合,该怎么做呢?
1 | (async () => { |
实例
我发现一览阅读收录了我的Blog,不知是哪位朋友提交的还是他们抓取的。
总之,感谢您🙏
我非常邪恶的,想批量给自己点赞。于是有了如下代码
1 | function sleep(ms) { |
注意
这里的async
和await
实际是语法糖,是对Promise的包装。
Reference
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:ES8大法好——JavaScript里用上真正的延时函数sleep()
文章作者:Chris
发布时间:2018-01-24
最后更新:2022-03-23
原始链接:https://chriszheng.science/2018/01/24/Great-ES8-the-true-sleep-function-in-JavaScript/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享