javascript – 前端:通过browserify下划线.js或async.js?

所以如果你是一个后端node.js dev,你就会知道名为 async的很棒的lib.

如果你是一个前端开发人员,你就会知道名为underscore的很棒的lib.

现在的问题是,这两个库都倾向于在某种程度上提供类似的功能.

所以问题是,使用browserify在前端使用异步是否有意义?

解决方法

Underscore一个实用程序库,它提供了一些有用的功能,如each,map和reduce.但是,所有这些都是同步的.例如
var results = _.map([1,2,3],function(value,index,list) {
  return value * 2;
});

console.log(results);

输出
[2,4,6]

如果您注意到,只有在完全执行_.map()函数并返回结果后才会调用console.log(results)语句.这是您在浏览器脚本中使用的典型同步编程风格.

在Node.js为王的服务器上,如上所述的同步编程对事件循环有害.在那里,异步编程风格是首选.使用异步库查看相同的map方法.

async.map([1,function mapper(item,callback) {
            callback(null,item * 2);
        },function(error,results) {
            console.log(results);
        }
);

输出
[2,它不会将映射的数组作为返回值返回,而是将映射的数组传递给回调函数,并使用console.log(results)来打印回调内的结果.

这种编程风格的一个副作用是迭代器函数被并行调用,而不是按顺序调用,从而在迭代器函数使用任何I / O时实现更大的可伸缩性.

因此,即使异步库提供的某些功能类似于Underscore提供的功能,它们也用于不同的目的,如上所示.现在,决定使用哪些取决于您的应用程序需求和编程风格.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...