JS异步编程
来源:互联网 发布:linux 下的awk gensub 编辑:程序博客网 时间:2024/06/05 02:02
一、回调函数
这是异步编程最基本的方法。
假定有两个函数f1和f2,后者等待前者的执行结果。
f1();
f2();
如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。
function f1(callback){
setTimeout(function () {
// f1的任务代码
callback();
}, 1000);
}
执行代码就变成下面这样:
f1(f2);
采用这种方式,我们把同步操作变成了异步操作,f1不会堵塞程序运行,相当于先执行程序的主要逻辑,将耗时的操作推迟执行。
二、Promises对象
Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。
简单说,它的思想是,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。比如,f1的回调函数f2,可以写成:
f1().then(f2);
f1要进行如下改写(这里使用的是jQuery的实现):
function f1(){
var dfd = $.Deferred();
setTimeout(function () {
// f1的任务代码
dfd.resolve();
}, 500);
return dfd.promise;
}
这样写的优点在于,回调函数变成了链式写法,程序的流程可以看得很清楚,而且有一整套的配套方法,可以实现许多强大的功能。
比如,指定多个回调函数:
f1().then(f2).then(f3);
再比如,指定发生错误时的回调函数:
f1().then(f2).fail(f3);
- js异步编程学习
- node.js异步编程
- JS异步编程
- JS 异步纵向编程
- Node.js 异步编程
- js异步编程上手
- JS异步编程
- Node.js 异步编程
- JS异步编程
- js异步编程原理
- JS异步编程
- js异步编程
- JS异步编程二:自由落体
- wind.js助力异步编程
- js同步和异步编程
- Node.js[1] 异步编程
- js 异步实现与编程
- js 异步实现与编程
- HDU 4745-Two Rabbits(最长非连续回文串,区间DP)
- 滚动 导航栏 吸顶 固定
- C
- 课堂笔记: 配置zookeeper(zk)并创建第一个hadoop项目
- Google VR开发-Cardboard VR SDK头部追踪实现(卡尔曼滤波)
- JS异步编程
- 编写自己的代码库(javascript常用实例的实现与封装)
- hdu 1595 find the longest of the shortest
- VS2017 ReferenceManagerPackage的解决
- 仿网易云音乐图片保存
- JS和OC进行交互的总结
- 工作流框架Activiti常用功能初探
- Codeforces 834D The Bakery【Dp+线段树】好题~
- FastReport.Net报表控件功能详解—报表元素