js 執行順序


1、js是‘單線程’語言,執行模式有兩種:同步,異步

  單線程:只有一條流水線

  同步:依次再流水線上執行

  異步:流水線旁加了一個臨時儲物台(任務隊列),會把某些模塊拿到臨時儲物台,或者會把臨時儲物台的某些模塊插隊到流水線

 

2、js默認模式是同步模式,按流水線執行:A,B,C,不管A里邊代碼運行時間多長,都要先執行完A,再執行B,再執行C

A:sssssssssssssssssssssssssss
B: ddd
C: ccccccccc

 

3、實現異步模式的幾種方法

  ①回調函數(把臨時儲物台的模塊插入到流水線)

  ②setTimeout(把流水線的模塊拿到臨時儲物台,過一段時間再插入回去)

  ③Promise對象(把臨時儲物台的模塊插入到流水線)

 

4、小程序中所有的wx.xxx()接口,也都是異步模式(先執行流水線上非wx.xxx的模塊,把流水線上所有的wx.xxx模塊先拿到臨時儲物台執行,等哪個有了返回結果,並且流水線上有空了,也就是流水線上非wx.xxx的模塊執行完了,再把哪個插回去)

 

5、async函數中,代碼的執行模式是,異步模式,所有的模塊都放在臨時儲物台上執行,哪個模塊執行完了,就先把哪個模塊拿到流水線上執行

 

6、舉例

jobs.add({
      data: {
        userName: 'aaa'
      }
    })
      .then(res => {
        wx.hideLoading({
          success: res=>{
            console.log('hideLoading')
          }
        })
        wx.showToast({
          title: '提交成功',
          icon: 'success',
          duration: 2000
        })
        wx.switchTab({
          url: '../my/my',
        })
        console.log('aaaa')
      })
      .catch(err => {
        console.log(err)
      })

執行順序:

把wx.hideLoading,wx.showToast,wx.switchTap先放到臨時儲物台,並執行

執行流水線上的console.log('aaaa'),流水線上有空了,把臨時儲物台上最先有了返回結果的wx.hideLoading插入回流水線執行,流水線上有空了,又把第二個有了返回結果的wx.switchTab插入回流水線執行

顯示順序:aaaa,hideLoading,跳轉

 

其他:

7、if...else if....else會按照順序執行,先執行if,再執行else if,再執行else

8、for循環是先執行完內部的循環,再跳出循環,for循環后面的代碼,必須for循環完成后才能執行

 

wx .hideLoading ({
success : res =>{
console .log ( 'hidLoading' )
}
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM