常规的ajax请求,可以直接外层return后,就为异步,但是ajax的jsonp类型请求,直接外层return不为异步,得不到请求promiss结果
正常的ajax:
export function _fp (){
// return new Promise(((resolve, reject) => {
//
// }))
// return Promise.reject({success:true,message:'请求成功'});
// return getBanner().then(res=>{
// return Promise.resolve({success:true,message:'获取菜单信息成功'});
// })
return $.ajax({
// dataType: 'jsonp',
// async : true,//TODO:这个太重要了
url:'/api/yongfeng_port/index.php/home/index/banner',
method:'get',
success:function (res){
console.log(res)//走这里
},
error:function (err){
console.log(JSON.parse(err.responseText))
}
})
}
_fp().then(res=>{
console.log(res)//这里得到结果
})
jasop的
$.ajax({
type: 'GET',
dataType: 'jsonp',
async : true,//TODO:这个太重要了
timeout:2000,//TODO:这个太重要了,jsonp这个格式比较特殊 不走error,加个这个就行
data: {
platformSet: true,
ticket: data,
service: location.href
},
url: process.env.VUE_APP_ZHXY_SERVER + '/desktop/backend/api/portal/navbarConfig',
success: function (res) {
if (res.user) {
return resolve({success:true,message:'获取导航栏用户信息成功',user:res.user,navData:res})
} else {
return reject({success:false,message:'获取导航栏用户信息失败'})
}
},
error:function (xhr, ajaxOptions, thrownError){
return reject({success:false,message:'获取导航栏用户信息失败'})
}
})