Promise作用
防止出现回调地狱,提高代码的可读性,像同步操作那样去执行异步操作
(
promise基本用法
let pro = new Promise((resolve, reject) => {
if (Math.random() > 0.5) {
resolve("ok")
} else {
reject("no")
}
})
pro.then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})
防止回调地狱的用法
流程:登录,请求定位, 请求首页数据
function login(){
return new Promise((resolve, reject) => {
$.ajax({
type: "get",
url: URLSearchParams,
success: function(res){
resolve ("成功");
},
error: function(err){
reject("失败")
}
})
})
}
function location_city(){
return new Promise((resolve, reject) =>{
$.ajax({
type:"get",
url:URLSearchParams,
success:function(res){
resolve("chenggong");
},
error:function(err){
reject("shibai");
}
})
})
}
function homeData(){
return new Promise((resolve, reject) => {
$.ajax({
type:"get",
url: URLSearchParams,
success:function(res){
resolve("1111");
},
error:function(err){
reject("2222")
}
})
})
}
login().then(data => {
console.log(data);
return location_city();
}).then(data => {
console.log(data)
return homeData();
}).then(data => {
console.log(data)
}).catch(err => {
console.log(err);
})