Learn how to write a promise based delay function and then use it in async await to see how much it simplifies code over setTimeout.

Lets say you want to call a function after 1s, 2s, 3s. You can use setTimeout, or you can wrap it up into a simple delay function that works with async/await

We want to conver this code

const run = (cb) => {
setTimeout(() => {
cb('1s');
setTimeout(() => {
cb('2s');
setTimeout(() => {
cb('3s');
}, 1000);
}, 1000);
}, 1000);
}

to:

const delay = (ms) => new Promise(res => setTimeout(res, ms));

const runAsync = async (cb) => {
await delay(1000);
cb('1s');
await delay(1000);
cb('2s');
await delay(1000);
cb('3s');
} runAsync((time) => console.log(time));

最新文章

  1. ubuntu15:10 163源
  2. 转:C#中TransactionScope的使用方法和原理
  3. 在Excel中制作雷达图
  4. 关于css3的动画总结
  5. java加密算法--MD5加密和哈希散列带秘钥加密算法源码
  6. 为ecshop红包增加”转赠”功能
  7. linux驱动系列之ubuntu快捷键(转)
  8. Any Way You Slice It (向量旋转 以及 判断线段是否相交)(模板)
  9. android loadlibrary 更改libPath 路径,指定路径加载.so
  10. Outlook接收qq的邮件
  11. JAVA_基础面试题
  12. php获取html checkbox的值。
  13. javaDay1 基础知识
  14. JavaScript中的几种继承方式对比
  15. kvm之三:本地安装虚拟机
  16. QTimer在QThread环境中失效的问题
  17. day13_DOM
  18. 20170805_linux
  19. 题解—— 洛谷 p1993 小K的农场(差分约束&负环判断)
  20. A记录和CNAME记录的区别

热门文章

  1. 反序列化xml到treeview
  2. Vijos——T 1164曹冲养猪
  3. Fragment 实现的 分类 效果
  4. hdu 2795 Billboard(线段树单点更新)
  5. Redis笔记教程
  6. canvas画板基础应用的学习
  7. 在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方式
  8. 魅族MX5和努比亚布拉格手机參数对照
  9. Android 获取联系人手机号码、姓名、地址、公司、邮箱、生日
  10. Notepad++和MinGW的安装和配置