前言:promise是es6提出的一种以同步的代码格式来处理异步请求的方式,它解决了回调地狱。在es8提出的async和await是比promise更加彻底的使用同步的方式处理了异步
不多说,直接上代码,我这里是在html文件中嵌入js文件进行编写的,并且使用npm下载了jquery之后进行引入,使用jquery封装好的$.ajax发送请求进行简单的使用封装。
<script src="./node_modules/jquery/dist/jquery.js"></script>
<script src="promise.js"></script>
<script>
//使用promise封装ajax请求
//参数options --- 对象
function getData(options) {
return new Promise((resolve, reject) => {
//异步操作 发送ajax请求
$.ajax({
url: options.url, //请求的url地址
type: options.type || 'get', //请求方式 post/get 不传参默认get
data: options.data || null, //请求的参数对象 不传默认空
dataType: 'json', //请求返回结果的数据类型
success: resolve, //成功了调用resolve函数
fail: reject, //失败调用reject函数
})
})
}
getData({
url:'http://localhost:3000/post?pageIndex=1&pageSize=2&category=8'
}).then(res => {
console.log(res)
}).catch(res => {
console.log(res)
})
</script>
注意:调用的时候接口要换成自己的哈