# nextTick

# 回调函数

setData是异步的,可以调用nextTick确保在真正的setData完成之后执行一些函数。

import { wxue, setData } from 'wxue'

wxue({
  onLoad(options) {
    setData(this, { a: 1 })
    console.log(this.data.a) // undefined
    nextTick(() => {
      console.log(this.data.a) // 1
    })
  },
})

# Promise和async/await

nextTick返回一个Promise,所以可以使用async/await。这样的写法看起来更符合逻辑。

import { wxue, setData } from 'wxue'

wxue({
  async onLoad(options) {
    setData(this, { a: 1 })
    console.log(this.data.a) // undefined
    await nextTick()
    console.log(this.data.a) // 1
  },
})