小程序延遲執(zhí)行wx.nextTick
wx.nextTick(function callback)
基礎(chǔ)庫 2.2.3 開始支持,低版本需做兼容處理。
小程序插件:支持,需要小程序基礎(chǔ)庫版本不低于 2.7.1
微信 Windows 版:支持
微信 Mac 版:支持
延遲一部分操作到下一個(gè)時(shí)間片再執(zhí)行。(類似于 setTimeout)
參數(shù)
function callback
說明
因?yàn)樽远x組件中的 setData 和 triggerEvent 等接口本身是同步的操作,當(dāng)這幾個(gè)接口被連續(xù)調(diào)用時(shí),都是在一個(gè)同步流程中執(zhí)行完的,因此若邏輯不當(dāng)可能會導(dǎo)致出錯(cuò)。
一個(gè)極端的案例:當(dāng)父組件的 setData 引發(fā)了子組件的 triggerEvent,進(jìn)而使得父組件又進(jìn)行了一次 setData,期間有通過 wx:if 語句對子組件進(jìn)行卸載,就有可能引發(fā)奇怪的錯(cuò)誤,所以對于不需要在一個(gè)同步流程內(nèi)完成的邏輯,可以使用此接口延遲到下一個(gè)時(shí)間片再執(zhí)行。
示例代碼
Component({
doSth() {
this.setData({ number: 1 }) // 直接在當(dāng)前同步流程中執(zhí)行
wx.nextTick(() => {
this.setData({ number: 3 }) // 在當(dāng)前同步流程結(jié)束后,下一個(gè)時(shí)間片執(zhí)行
})
this.setData({ number: 2 }) // 直接在當(dāng)前同步流程中執(zhí)行
}
})
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-04-06 閱讀:
- 小程序開始下拉刷新
- 開始下拉刷新。調(diào)用后觸發(fā)下拉刷新動(dòng)畫,效果與用戶手動(dòng)下拉刷新一致。
- 04-06 關(guān)注:0