1. promise对象的创建
构造函数有一个参数, 即回调函数,
回调函数有两个参数, resolve/reject
let p1= new Promise(function(resolve, reject) {
})
2. promise 对象用来传递异步操作的状态
//实现逻辑: 第三次ajax请求需要用到请来给你吃ajax请求的结果
<script>
let p1 = new Promise(function(resolve, reject) {
$.ajax({
url: './data/1.txt',
dataType: 'json',
success(arr) {
resolve(arr)
},
error(err) {
reject(err)
}
})
});
let p2 = new Promise(function(resolve, reject) {
$.ajax({
url:'./data/2.txt',
dataType: 'json',
success(arr) {
resolve(arr)
},
error(err) {
reject(err)
}
})
})
Promise.all([p1, p2]).then(function(arr) {
[res1, res2] =arr;
console.log(arr);
console.log(res1, res2);
}, function() {
console.log('.all()方法可以将多个实例结合起来');
})
let res1;
let res2;
//第三次ajax请求需要用到前两次ajax请求的结果
let p3 = new Promise((resolve, reject) => {
$.ajax({
url: './data/1.txt',
//如果数据的键和值相同, 可以使用这种写法
data: {
res1,
res2
},
dataType: 'json',
success: function(arr) {
resolve(arr)
},
error: function(err) {
reject(err)
}
})
}).then((val) => {
console.log(val);
})