问题
无法将then里的值 暴露出来。研究了好久。
export async function getAsyncRoutes() {
let routes = []
await getInfo().then(info => {
routes = info.routes
console.log(routes)
})
console.log(routes)
return routes
}
答案
无法在当前获得未来的值。一步异步,处处异步。
应该返回一个Promise,然后在then的执行体中处理。或者async/await 。
promise对象似乎无法取出里面的值.promise的链式调用, 表明它返回的依然是一个promise对象.
即使用 async 来包装, async函数本身返回的就是一个promise对象, 依然没用.
似乎绕来绕去, value值永远在promise对象的肚子里, 出不来.
Promise
<script>
function getSomething() {
var r = 0;
return new Promise(function(resolve) {
setTimeout(function() {
r = 2;
resolve(r);
}, 10);
});
}
function compute(x) {
alert(x * 2);
}
getSomething().then(compute);
</script>
如何将Promise.then中 取值并返回? https://www.zhihu.com/question/274196779
promise+await解决js中异步任务返回值的问题 https://www.jianshu.com/p/ad70c9c36c22
获取JavaScript异步函数的返回值 https://www.jb51.net/article/100661.htm