博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript async异步操作库简介
阅读量:5034 次
发布时间:2019-06-12

本文共 1663 字,大约阅读时间需要 5 分钟。

异步操作知识

在js世界中, 异步操作非常流行, nodejs就是特点基于异步非阻塞。

js语言支持的异步语法包括, Promise  async await generator yield。

这些语法需要使用者了解非常清楚, 往往很困难。

下面介绍一个异步操作的超级库,可以实现很多异步操作和流程控制。

 

async库

http://caolan.github.io/async/index.html

Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with and installable via npm install --save async, it can also be used directly in the browser.

浏览器也可以用!!!

Async provides around 70 functions that include the usual 'functional' suspects (map, reduce, filter, each…) as well as some common patterns for asynchronous control flow (parallel, series, waterfall…). All these functions assume you follow the Node.js convention of providing a single callback as the last argument of your asynchronous function -- a callback which expects an Error as its first argument -- and calling the callback once.

包括70个异步函数, 包括 函数类型的 map reduce filter

以及 异步控制流函数 parallel series

 

DEMO

async.map(['file1','file2','file3'], fs.stat, function(err, results) {    // results is now an array of stats for each file});async.filter(['file1','file2','file3'], function(filePath, callback) {  fs.access(filePath, function(err) {    callback(null, !err)  });}, function(err, results) {    // results now equals an array of the existing files});async.parallel([    function(callback) { ... },    function(callback) { ... }], function(err, results) {    // optional callback});async.series([    function(callback) { ... },    function(callback) { ... }]);
parallel 并行执行,效率高。 === Promise.all series 按照前后顺序执行。 race 竞态执行。 === Promise.race

转载于:https://www.cnblogs.com/lightsong/p/6403832.html

你可能感兴趣的文章
前端项目里常见的十种报错及其解决办法
查看>>
Highcharts使用的一些总结
查看>>
做前端技术方案选型的时候,你是怎么做决策的?
查看>>
angularJs的运用
查看>>
(转)同步异步/阻塞非阻塞 和 5种linux网络通信模型
查看>>
Nginx 错误处理方法: bind() to 0.0.0.0:80 failed
查看>>
Phpcms V9缩略图裁剪存在黑边的解决方法
查看>>
Mysql并发时经典常见的死锁原因及解决方法
查看>>
BZOJ 2049: [Sdoi2008]Cave 洞穴勘测
查看>>
关于List比较好玩的操作
查看>>
第二章 Java语言基础(2)
查看>>
JS编程最佳实践
查看>>
webpack用 babel将ES6转译ES5
查看>>
Deep Breath - 论文阅读笔记
查看>>
CentOS 7 上安装vim 解決 centos -bash: vim: command not found
查看>>
jpg毁损检测思路
查看>>
博客开通
查看>>
Objective-C观察者模式(Observer)
查看>>
Hacker1
查看>>
Go面向对象之接口
查看>>