//promise.html
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="viewport" content="width=device-width, initial-scale=1.0">
<Meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="http://cdn.bootcss.com/jquery.min.js"></script>
</head>
<body>
<script>
//1、查出当前用户信息
//2、按照当前用户的id查出他的课程
//3、按照当前课程id查出分数
$.ajax({
url:"mock/user.json",
success(data) {
console.log("查询用户:", data);
$ajax({
url:'mock/user_corse_${data.id}.json',
success(data) {
console.log("查询到课程:", data);
$.ajax({
url:'mock/corse_score_${data.id}.json',
success(data) {
console.log("查询到分数:",data);
},
error(error) {
console.log("出现异常了:" + error);
}
});
},
error(error) {
console.log("出现异常了:" + error);
}
});
},
error(error) {
console.log("出现异常了:" + error);
}
});
//1、 Promise可以封装异步操作
let p = new Promise((resolve, reject)=>{
//1、异步操作
$.ajax({
url: "mock/user.json",
success:function(data){
console.log("查询用户成功:", data)
resolve(data);
},
error:function(err){
reject(err);
}
});
});
p.then((obj)=>{
return new Promise((resolve, reject)=>{
$.ajax({
url: "mock/user_corse_${obj.id}.json",
success:function(data){
console.log("查询用户课程成功:", data)
resolve(data);
},
error:function(err){
reject(err);
}
});
}).then((data)=>{
console.log("上一步的结果", data)
$.ajax({
url: "mock/corse_score_${data.id}.json",
success:function(data){
console.log("查询课程得分成功:", data)
resolve(data);
},
error:function(err){
reject(err);
}
});
})
function get(url,data){
return new Promise((resolve, reject)=>{
$.ajax({
url: url,
data:data,
success:function(data){
resolve(data);
},
error:function(err){
reject(err);
}
});
}
get("mock/user.json")
.then((data)=>{
console.log("用户查询成功:", data)
return get(`mock/user_corse_${data.id}.json`);
})
.then((data) => {
console.log("课程查询成功:", data)
return get(`mock/corse_score_${data.id}.json`);
})
.catch(()=>{
console.log("出现异常",err)
});
</script>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。