Promise多用在ajax请求中,
var promise = new Promise(function (resolve, reject) {
$.ajax({
url: 'http://127.0.0.1/login',
method: 'get',
data: {},
success: function (res) {
resolve(res)//这里是你要返回的数据,就是ajax获取的数据
},
error: function (err) {
reject(err)//这里是失败的回调,使用方法会在下面列出
}
})
})
promise 的resolve在函数外部接收参数
ajax: function() {
return new Promise(function (resolve, reject) {
$.ajax({
url: 'http://127.0.0.1/login',
method: 'get',
data: {},
success: function (res) {
resolve(res)//这里是你要返回的数据,就是ajax获取的数据
},
error: function (err) {
reject(err)//这里是失败的回调,使用方法会在下面列出
}
})
})
}
ajax.then(res => {
console.log(res)
//这里的res就是上面resolve导出的数据,这里只是形参,用什么都可以
}).catch(err => {
console.log(err)
//这里的err就是上面reject导出的数据,这里只是形参,用什么都可以
})
Promise通常用于解决回调地狱的问题,
回调地狱:就是多个ajax互相嵌套逻辑深度嵌套,维护起来很麻烦
而Promise并没有从根本上解决回调地狱的问题,他只是把ajax的异步请求变为了同步,