promise对象的作用:
防止出现回调地狱,提高代码的可读性,像同步操作那样去执行异步操作
回调地狱:
是指回调函数中有回调函数。
promise的使用
let pro = new Promise( (resolve, reject) => {
if(Math.random() > 0.5){
resolve("i'm resolve");
}else{
reject("i'm reject");
}
})
pro.then( (res) =>{
console.log(res);
} ).catch( (err) =>{
console.log(err);
} )
案例
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
// 1. 请求登录
function myLogin() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'get',
url: 'json/login.json',
success(res) {
resolve(res);
},
error(err) {
reject(res);
}
})
})
}
// 2. 导演信息
function director() {
return new Promise((resolve, reject) => {
$.ajax({
type: 'get',
url: 'json/director.json',
success(res) {
resolve(res);
},
error(err) {
reject(res);
}
})
})
}
// 3. 电影信息
function film(data) {
return new Promise((resolve, reject) => {
$.ajax({
type: 'get',
url: 'json/' + data + '.json',
success(res) {
resolve(res);
},
error(err) {
reject(err);
}
})
})
}
myLogin().then(res => {
return director();
}).then(res => {
return film(2);
}).then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
})
</script>