对于async的错误理解
来源:互联网 发布:jquery点击事件源码 编辑:程序博客网 时间:2024/05/17 04:52
/** * Created by qiucheng on 15/8/27. */var async = require("async");var arr = [1, 2, 3];var transformed = arr.map(function (ele) { return ele * 3;});console.log(transformed);async.map(arr, function (val, callback) { setTimeout(function () { console.log(val); callback(null, val * 2); }, 10); }, function (err, results) { if (err) { console.log(err); } console.log(results); });console.log("end");
上面这段代码中,map和async.map的区别在于,async版本的第二个参数的函数内可以调用异步方法,然后通过callback的方式表示返回值。
也就是说如果第二个参数的函数里没有异步方法的话,map和async版本是一样的。
async.map(arr, function (val, callback) {//该版本和不适用async.map一致 console.log(val); callback(null, val * 2); }, function (err, results) { if (err) { console.log(err); } console.log(results); });
并且,如果说在某些情况下的确不需要使用异步操作时,也不能在第二个函数中直接调用callback函数,不然可能会引起stack overflow,如下图所示:
asynceachSerieshugeArrayif inCacheitemcallbacknull cacheitem; // if many items are cached, you'll overflowelsedoSomeIOitem callback;//...;
正确做法应该是;
asynceachSerieshugeArrayif inCacheitemasyncsetImmediatecallbacknull cacheitem;;elsedoSomeIOitem callback;//...
0 0
- 对于async的错误理解
- 对于mmap函数错误的理解
- 理解 JavaScript 的 async/await
- 理解 JavaScript 的 async/await
- 理解 JavaScript 的 async/await
- 理解 JavaScript 的 async/await
- 理解JavaScript的async/await
- 对于bash:useradd:command not found错误的一点理解
- 理解async
- 对于继承的理解
- 对于volatile的理解
- 对于分布式的理解
- 对于volatile的理解
- 对于const的理解
- 对于scull_read的理解
- 对于分页的理解
- 对于视图的理解
- 对于HBase的理解
- Android 布局管理器学习
- name选择器所以一级节点偶数行换样式(juqery)
- 八皇后问题(最简单的递归解法)
- android sqlite和listview 使用小例子
- 表单的建立和PHP的交互
- 对于async的错误理解
- HDU 1595 find the longest of the shortest (最短路+记录路径+枚举删边)
- javascript中window对象及属性
- Runtime学习笔记
- stochastic noise and deterministic noise
- 通过工具来监控webService请求和返回时的数据
- java保留两位小数
- UTF-8简史
- [PHP] LAMP环境搭建