Promise
js语言是单线程语言
一次只能执行一个任务,多个任务的时候需要排队执行(同步模式)
异步:每一个任务有一个或多个回调函数,前一个任务结束后执行回调函数,后一个任务不必再等前一个任务结束就执行
1.ajax
2.事件监听
f1.on("done",f2)
上面这行代码的意思是,当f1发生done事件,就执行f2
3.发布/订阅模式(publisht-subscribe)
f2向jquery订阅done信号
jQuery.subscribe("done",f2)
f1中发布
function f1(){
setTimeout(function () {
// f1的任务代码
jQuery.publish("done");
}, 1000);
}
f2完成执行后也可以取消订阅(unsubscribe)
jQuery.unsubscribe("done",f2)
4.Promise 对象
Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口
每个异步任务都返回一个Promise对象,该对象有一个then方法,允许自定义回调函数
也可以有多个回调函数
f1().then(f2).then(f3)
发生错误时也有回调
f1().then(f2).fail(f3)