小程序延遲執行wx.nextTick
wx.nextTick(function callback)
基礎庫 2.2.3 開始支持,低版本需做兼容處理。
小程序插件:支持,需要小程序基礎庫版本不低于 2.7.1
微信 Windows 版:支持
微信 Mac 版:支持
延遲一部分操作到下一個時間片再執行。(類似于 setTimeout)
參數
function callback
說明
因為自定義組件中的 setData 和 triggerEvent 等接口本身是同步的操作,當這幾個接口被連續調用時,都是在一個同步流程中執行完的,因此若邏輯不當可能會導致出錯。
一個極端的案例:當父組件的 setData 引發了子組件的 triggerEvent,進而使得父組件又進行了一次 setData,期間有通過 wx:if 語句對子組件進行卸載,就有可能引發奇怪的錯誤,所以對于不需要在一個同步流程內完成的邏輯,可以使用此接口延遲到下一個時間片再執行。
示例代碼
Component({
doSth() {
this.setData({ number: 1 }) // 直接在當前同步流程中執行
wx.nextTick(() => {
this.setData({ number: 3 }) // 在當前同步流程結束后,下一個時間片執行
})
this.setData({ number: 2 }) // 直接在當前同步流程中執行
}
})
- 小程序開始下拉刷新
- 開始下拉刷新。調用后觸發下拉刷新動畫,效果與用戶手動下拉刷新一致。
- 04-06 關注:0