第一步:定义js文件,用promise 封装请求
function getBaseUrl() {
return new Promise((resolve,reject) => {
uni.request({
url:'http://www.baidu.com',
success: (res) => {
resolve(res.data)
}
})
})
}
export {
getBaseUrl
}
第二步:async/await 将异步改为同步
//引入封装好的js
import {getBaseUrl} from "@/common/config.js"
onLaunch: async function() {
let url = await getBaseUrl();
console.log(url);
}
第一步:调用微信授权,获取 code
第二步:将 code 发送到后台换取 openide
第三步:将 openid 发送到后台获取用户信息
第四步:获取到最终结果
//调用微信授权,获取 code
let autoLogin = new Promise((resolve,reject)=>{
uni.login({
provider:'weixin',
success: r => {
let code = r.code;
resolve({service:'User.Jscode2session',code})
},fail(e){
reject(e+'授权失败1')
}
});
})
//将 code 发送到后台换取 openid
let loginCode = autoLogin.then((res)=>{
return new Promise((resolve,reject)=>{
_this.$u.get('', res).then(data => {
resolve(data)
});
})
})
//将 openid 发送到后台获取用户信息
let userData = loginCode.then((res)=>{
return new Promise((resolve,reject)=>{
let loginRequery = {
service:'User.Login',
type:'weixinxcx',
openid:res.info.openid,
online:1,
}
_this.$u.post('',loginRequery).then(data => {
resolve(data)
})
});
})
//获取到最终结果
userData.then((res)=>{
console.log(res);
})
new Promise((resolve,reject)=>{
//调用微信授权,获取 code
uni.login({
provider:'weixin',
success: r => {
let code = r.code;
resolve({service:'User.Jscode2session',code})
},fail(e){
reject(e+'授权失败1')
}
});
//将 code 发送到后台换取 openid
}).then((res)=>{
return new Promise((resolve,reject)=>{
_this.$u.get('', res).then(data => {
resolve(data)
});
})
//将 openid 发送到后台获取用户信息
}).then((res)=>{
return new Promise((resolve,reject)=>{
let loginRequery = {
service:'User.Login',
type:'weixinxcx',
openid:res.info.openid,
online:1,
}
_this.$u.post('',loginRequery).then(data => {
resolve(data)
})
});
//获取到最终结果
}).then((res)=>{
console.log(res);
})
new Promise((resolve,reject)=>{
console.log(a)
//调用微信授权,获取 code
uni.login({
provider:'weixin',
success: r => {
let code = r.code;
resolve({service:'User.Jscode2session',code})
},fail(e){
reject(e+'授权失败1')
}
});
//将 code 发送到后台换取 openid
}).then((res)=>{
return new Promise((resolve,reject)=>{
_this.$u.get('', res).then(data => {
resolve(data)
});
})
//将 openid 发送到后台获取用户信息
}).then((res)=>{
return new Promise((resolve,reject)=>{
let loginRequery = {
service:'User.Login',
type:'weixinxcx',
openid:res.info.openid,
online:1,
}
_this.$u.post('',loginRequery).then(data => {
resolve(data)
})
});
//获取到最终结果
}).then((res)=>{
console.log(res);
}).catch(e=>{
console.log(e);
})