微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

课时34 前端基础-ES6-promise异步编排

//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] 举报,一经查实,本站将立刻删除。

相关推荐