js 解决异步操作回调地狱常用的方法

7次阅读

共计 555 个字符,预计需要花费 2 分钟才能阅读完成。

查找一个班的学生,再查找每个学生参加的课程
// callback 为请求成功的回调函数
// 具体查找的 api 这里不再举例
查找学生异步方法 getStu(callback); 查找每个学生参加的课程异步方法 getCourse(callback);
由以上分析可知 需要等查找学生的请求返回后才能根据学生 id 查找每个学生的课程,以下为不同的解决方法
Promise
let getStuPromise = new Promise((resolve,reject)=>{
getStu(function(res){
resolve(res.data);
});
});
getStuPromise.then((data)=>{
// 得到每个学生的课程
getCourse();
// 还可以继续返回 promise 对象
});
Generator
function *generatorGetStu(){
let stus = yield getStu();
// 等到 getStu 异步执行完才会执行 getCourse
let course = yield getCourse();
}
async
async getEveryCourse(){
let stus = await getStu();
// 等到 getStu 异步执行完才会执行 getCourse
let course = await getCourse();
}

正文完
 0