JavaScript是一门单线程语言,将代码的执行分为异步和同步,AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行,常见的执行异步的操作有如下几种
1、回调函数
假设函数 f2 依赖于f1 执行完毕了再执行,那么可以写成如下的模式,调用方法为 f1( f2() )
function f1(callback){
setTimeout(function () {
// f1的任务代码
callback();
}, 1000);
}
2、事件监听模式,采用jQuery中的写法则为
f1.on('done', f2);
3、发布订阅模式(又称观察者模式)
可以理解为,存在一个信号中心,上一个事件完成,发布一个信号,则下一个事件可以订阅这个信号,则可以实现异步执行
4、Promise实现
Promise封装ajax的方法
封装get请求
function getJSON (url) {
return new Promise( (resolve, reject) => {
var xhr = new XMLHttpRequest()
xhr.open('GET', url, t