const token = (async () => { const token = await new Promise(resolve => {
setTimeout(() => resolve("abc"), 2000);
}); console.log("1", token); return token;
})();console.log("2", token);
3 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
const token = (async () => { const token = await new Promise(resolve => { setTimeout(() => resolve("abc"), 2000); }); console.log("1", token); // 1 abc return token; // 无卵用语句 async函数自动 return Promise})();console.log("2", token); // 2 Promise对象
在async function里面,return await没用。由于async function总是包含返回值Promise.resolve,除非在总体 Promise 解析或拒绝之前添加额外时间,否则实际上return await不会执行任何操作。这种模式几乎肯定是因为程序员无视async function的返回语义。
繁花如伊
TA贡献2012条经验 获得超12个赞
先2后1
2里边的token是一个变量赋值所以不用等异步执行完毕
因为1里边有token 而token在异步函数作用域里边,需要异步代码执行结束才会有结果
添加回答
举报
0/150
提交
取消