promise
// promise 解决回调地狱 提高代码的可读性
let pro = new Promise((resole, reject) => {
if(Math.random() > 0.5) {
resolve("ok");
}else {
reject("no");
}
})
pro.then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
const USER_URL = "https://randomuser.me/api";
function login() {
return new Promise((resolve, reject) => {
$.ajax({
type: "get",
url: USER_URL,
success: function(res) {
resolve("登录成功");
},
error: function(err) {
reject("登录失败")
}
})
})
}
function location_city() {
return new Promise((resolve, reject) => {
$.ajax({
type: "get",
url: USER_URL,
success: function(res) {
resolve("定位成功");
},
error: function(err) {
reject("定位失败")
}
})
})
}
function homeData() {
return new Promise((resolve, reject) => {
$.ajax({
type: "get",
url: USER_URL,
success: function(res) {
resolve("数据请求成功");
},
error: function(err) {
reject("数据请求失败")
}
})
})
}
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)
})
</script>