Promise对象:代表了未来某个将要发生的事件(通常是一个异步操作)
好处:有了promise对象,可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(回调地狱)
1.promise原理
promise有两种状态
resolve处理成功的情况
reject处理失败的情况
const promise = new Promise((resolve, reject) => {
resolve(2);
reject(3);
})
promise.then(res => {
console.log(res);
}, err => {
console.log(err);
})
2.没有promise之前的处理
function http(url,callback) {
$.ajax({
url,
dataType: "json",
success(res) {
callback(res);
}
})
}
http(url,res=>{
console.log(res);
})
3.使用promise
var promise = new Promise((resolve,reject)=>{
$.ajax({
url,
dataType:"json",
success(res){
resolve(res);
},
error(err){
reject(err);
}
})
})
promise.then(res=>{
console.log(res);
},err=>{
console.log(err);
})