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)
})
案例
//1.登录 // let myLoing = () => new Promise()
function myLoing() {
return new Promise((resolve,reject) => {
$.ajax({
type: "get",
url: "json/login.json",
success(res) {
resolve(res);
},
error(err) {
reject(err);
}
})
})
}
// 2.导演列表
function myDirector() {
return new Promise((resolve,reject) => {
$.ajax({
type: "get",
url: "json/director.json",
success(res) {
resolve(res);
},
error(err) {
reject(err);
}
})
})
}
//3.电影信息
function myFilm(id) {
return new Promise((resolve,reject) => {
$.ajax({
type: "get",
url: "json/" + id + ".json",
success(res) {
resolve(res);
},
error(err) {
reject(err);
}
})
})
}
//开始调用了
myLoing().then(res => {
return myDirector();
}).then(res => {
return myFilm(3);
})
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
})