一、Promise 基本介绍
1. 传统的 Ajax 异步调用在需要多个操作的时候,会导致多个回调函数嵌套,导致代码不够直观,就是常说的Callback Hell
2. 为了解决上述的问题,Promise对象应运而生,在 EMCAScript 2015当中已经成为标准
3. Promise 是异步编程的一种解决方案。
4. 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息
5. Promise 也是 ES6 的新特性,因为比较重要
6. 一句话: Promise 是异步编程的一种解决方案, 可以解决传统 Ajax 回调函数嵌套问题
二、promise实例
jquery ajax的嵌套示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery和ajax多次请求</title>
<script type="text/javascript" src="script/jquery-3.6.0.min.js">
</script>
<script type="text/javascript">
$.ajax({
url: "data/monster.json",
success(resultData) {//如果请求成功了,回调处理函数success
console.log("第1次ajax请求 monster基本信息=", resultData);
//发出第二次ajax请求
$.ajax({
url: `data/monster_detail_${resultData.id}.json`,
//下面是es6对象的方法简写形式
success(resultData) {
console.log("第2次ajax请求 monster详细信息=", resultData);
//$.ajax => callback hell
//$.ajax
//$.ajax
},
error(err) { //出错的回调函数
console.log("出现异常=", err);
}
})
},
error(err) {
console.log("出现异常=", err);