await在if else语句中执行顺序问题

      const promiseFn = () => {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(100);
          }, 2000);
        });
      };
      const foo = async () => {
        let x = "";
        if (x) {
          console.log("2");
        } else {
          const data = await promiseFn();
          x = data;
          console.log("3");
        }
        console.log("4");

        const user = {
          userId: x,
        };
      };
      foo();

打印结果为3,4。 问题为:await是异步的,为何打印结果不是4,3?

阅读 5k
1 个回答

await 会暂停当前函数执行,直到 promise resolve 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题