# Promise的简介
1. 是window的一个构造函数所以我们需要new Promise创建promise实例对象
2. 在new Promise(函数) 传递函数要有2个参数resolve表示成功的回调一个reject表示失败的回调
3. 在Promise的原型上有catch方法和then方法..
4. .then(resolve成功回调, reject失败回调)
5. 解决嵌套地狱
<!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="./jquery.js"></script>
</head>
<body>
<button>promise封装请求发送按钮</button>
</body>
</html>
<script>
// 封装自己的ajax
function klAjax () {
var proObj = new Promise((resolve, reject) => {
// 在这里写入成功或失败的操作
$.ajax({
url: 'http://localhost:3000/category/queryTopCategory',
success (data) {
// console.log(data)
resolve(data)
},
error: function (err) {
reject(err)
}
})
})
return proObj
}
// klAjax().then(data => {
// console.log(data, 888888)
// }, (err) => {
// console.log(err)
// })
// catch是捕获的意思 只要出现错误我都可以捕获到
klAjax().then(data => {
console.log(data, 888888)
})
// .then(成功回调,失败回调)
// .then(成功回调,失败回调)
// .then(成功回调,失败回调)
.catch(err => {
console.log(err)
})
// reject 和catch都可以捕获错误
// reject 和catch的区别 reject只是捕获当前的这一次错误 catch只要一次 所有的错误都会进入我的catch中
</script>