以下代码输出什么?为什么?

const token = (async () => {  const token = await new Promise(resolve => {
    setTimeout(() => resolve("abc"), 2000);
  });  console.log("1", token);  return token;
})();console.log("2", token);


慕姐8265434
浏览 761回答 3
3回答

潇湘沐

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的返回语义。

繁花如伊

先2后12里边的token是一个变量赋值所以不用等异步执行完毕因为1里边有token 而token在异步函数作用域里边,需要异步代码执行结束才会有结果

梵蒂冈之花

打开chrome ,按F12,把代码输到控制台里按回车
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript