微信小程序js异步转同步的问题

目前想做一个同步的执行方式,但是需要调用异步操作

代码如下:
同步:console.log('1')
异步:setTimeout(console.log('2'),1000)
同步:console.log('3')

实际执行为1.3.2
但是我是想执行为1.2.3

必须要等待2后才能执行3,请问有什么办法吗?

const app = getApp()

Page({
  data: {

  },
  onLoad() {
    this.fun1();
    this.fun2();
  },
  fun1() {
    console.log(1);
    let p = new Promise((resolve) => {
      setTimeout(() => {
        console.log(2);
        resolve();
      }, 1000)
    })
    p.then(() => {
      console.log(3);
    })
  },
  async fun2() {
    console.log(1);
    let p = new Promise((resolve) => {
      setTimeout(() => {
        console.log(2);
        resolve();
      }, 1000)
    })
    await p
    console.log(3);
  }
})

非常感谢大佬,解决了我的疑惑