图片如下:
你这里res我看下面也没用到啊
export const getRolePath = async () => {
let res;
try {
res = await getRoless();
} catch (error) {
console.log(error);
}
console.log(res);
}
可以这样
var a
getRoless().then((res)=>{
console.log(res,'有数据')
a = res
return res
}).then(()=>{
console.log(a)
//使用变量a
})
或者,不需要定义变量a
export const getRolePath = ()=>{
return getRoless().then((res)=>{
console.log(res,'有数据')
//直接把后面逻辑放这
const role = getRole()
//...
return paths
})
}
很简单哇,所有的业务代码你就放到 .then()
里面书写啊,然后返回一个 Promise
就好了,比如说这样。
export const getRolePath = () => {
return new Promise((resolve)=>{
var a
getRoless().then((res) => {
console.log(res, '有数据')
a = res
const role = getRole()
const pathMap = {
PROVIDER_USER_PATH,
MANAGE_USER_PATH
}
const paths = pathMap[`${role}_PATH`]
resolve(paths)
})
})
}
或者用 async/awiat
的方式:
export const getRolePath = async () => {
var a = await getRoless()
console.log(a, '有数据')
const role = getRole()
const pathMap = {
PROVIDER_USER_PATH,
MANAGE_USER_PATH
}
const paths = pathMap[`${role}_PATH`]
return paths
}
虽然不知道你为啥要声明一个变量 a
,因为其实就不需要来着...
Promise - JavaScript | MDN
async 函数 - JavaScript | MDN
Promise 对象 - ECMAScript 6入门
javascript - async & await (译) - DarkZone'Home - SegmentFault 思否
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
在你们那边用
await
犯法嘛?或者你只是单纯加 await 和 async 也行,搭配你的 then 混用。但是其实没必要这样写