近期在review以前同事的源码时,发现他使用了async.whilst方法。仿效其在本地调试时,发现程序死活都不执行,研究了半天,终于解开了谜团。

首先了解一下whilst的参数
whilst接受三个参数,第一个为判断函数,只有在该函数返回时,第二个参数参会执行。第二个参数便是表达核心逻辑的函数。第三个则是第一个参数返回false之后的回调函数。

async.whilst(test, fn, function(err, n){})

注意async包的版本
我同事那源码是比较早之前写的,用的是2.6.2的包,我用的是3.2.0的包,官方文档中显示,V2和V3的调用在细微的差异,直接导致是否调用成功。

V2,在https://github.com/caolan/async/blob/master/docs/v2/whilst.js.html清楚地写明
第一个参数

function() { return count < 5; }。

而V3,在https://github.com/caolan/async/blob/master/docs/v3/whilst.js.html中写明
第一个参数

function test(cb) { cb(null, count < 5); }

大家可以清楚地看到他们的区别,调用时要注意了。

使用async.whilst要注意的地方相关推荐

  1. Android Kotlin 协程async

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/118093646 本文出自[赵彦军的博客] 往期精彩文章 Android Corou ...

  2. C#中await/async闲说

    自从C#5.0增加异步编程之后,异步编程越来越简单,async和await用的地方越来越多,越来越好用,只要用异步的地方都是一连串的异步,如果想要异步编程的时候,需要从底层开始编写,这样后边使用的时候 ...

  3. JavaScript 的 defer 与 async

    当解析器遇到 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档.但是我们可以将脚本标记为 defer,这样就不会停止文档解析,等到文档解析完成才执行脚本,也可 ...

  4. Async 异步转同步

    前要:今天写react的一对多视频会议的项目时,4秒刷新一次会议成员,每一次4秒重新请求接口的时候,正在会议的成员的视频有的重新加载!就想到4秒刷新的时候获取回来的数组进行和视图的数组进行对比,有改变 ...

  5. async.js 学习教程(一)

    http://www.cnblogs.com/fly-dog/p/3657055.html 网上有一篇async.js的文章,但是看完后一头雾水,里面很多错误,只好学习下官方的文档 官方的文档分为三个 ...

  6. es6 async await 使用

    概述 说一下 async , await 函数的简单应用, 用最简单的示例,让复杂的事变得更简单. 记住以下知识,项目中基本够用 示例 以下示例,大家可以直接复制粘贴到浏览器的console面板测试, ...

  7. node.js async循环数组的方法

    Collections 集合处理 async.forEachOf  |  eachOf(object, iterator, callback) 实现功能:遍历object对象执行iterator,报错 ...

  8. Node.js中Async详解

    Node.js中Async详解:流程控制 安装 npm install async --save 地址 https://github.com/caolan/async Async的内容主要分为三部分 ...

  9. 【JS】930- 更快的 async 函数和 promises

    作者:语雀 链接:https://www.yuque.com/es2049/blog/yfqmu1 原文链接:https://v8.dev/blog/fast-async JavaScript 的异步 ...

  10. 「译」更快的 async 函数和 promises

    来源:https://www.yuque.com/es2049/blog 译自:Faster async functions and promises JavaScript 的异步过程一直被认为是不够 ...

最新文章

  1. Java设计模式(十七):责任链设计模式
  2. javaCV - 视频截帧,清晰度调整,转gif,视频转音频
  3. 关于Oracle数据库的SQL语句使用时的一些技巧。
  4. Angular7教程-04-Angular常用操作(下)
  5. SPSS聚类分析——一个案例演示聚类分析全过程
  6. EXCEL的各种“空”的区别:blank,““ , 0 ,以及 VBA里的各种空值:empty,null,nothing 等
  7. 择一城终老,遇一人白首
  8. Manjaro-KDE安装动态桌面插件
  9. Linux之常见面试题知识点批注(七)
  10. inet addr(网络地址)、bcast(广播地址)、mask(子网掩码)
  11. “浅尝”JavaScript设计模式
  12. c语言 按键切换显示屏,51单片机lcd1602按键切屏
  13. C语言中取余与取模的区别
  14. 文本相似度 Text Similarity
  15. 在ubuntu中运行sudo apt-get update报错The following signatures couldn‘t be verified because the public key
  16. bzoj2565题解
  17. web学习-项目练习-No.4-朋友圈
  18. 菜鸟也可以自己封装万能ghost系统
  19. AE学习笔记一:绘制其他形状和取消填充
  20. windows10管理员获得完全权限

热门文章

  1. GS认证、VDE认证、CE认证简单介绍
  2. 罗格斯的计算机科学,罗格斯大学计算机
  3. Postgresql - 监控 moniter — pgbadger
  4. 听华应龙的课我会用计算机吗体会,听华应龙老师课有感
  5. php培训班学多久,学php最快要多久? 学习路线?要不要报培训班?
  6. 阿里云DRDS分布式数据库 - 分库分表
  7. 多伦多大学计算机硕士读几年,多伦多大学计算机硕士申请条件
  8. 以太坊Ghost协议
  9. 自动驾驶中的多传感器融合
  10. js实现文字转语音功能tts