js异步执行的四种方式

1、回调函数--把同步操作变成异步,f1不会阻塞程序运行,相当于先执行程序的主要逻辑将耗时的延迟执行

function f1(callback){
	setTimeout(function(){
		//f1的代码
		callback();
	},1000)
}
f1(f2);

2、事件监听--f1执行完成后立即触发done事件从而执行f2

f1.on("done".f2);
function f1(){
	setTimeout(function(){
		//f1的代码量
		f1.trigger("done");
	},1000)
}

3、发布订阅模式(观察者模式)--f1执行完后向信号中心jQuery发布done信号从而引发f2的执行

jQuery.subscribe("done",f2);
function f1(){
	setTimeout(function(){
		//f1的代码
		jQuery.publish("done");
	},1000)
}

4、Promises对象--每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数

f1().then(f2).then(f3);