• 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')
    }
    })
  • 相关阅读:
    使用mongodb保存爬取豆瓣电影的数据
    使用scrapy爬取阳光热线问政平台
    使用scrapy爬取手机版斗鱼主播的房间图片及昵称
    使用selenium + chrome爬取中国大学Mooc网的计算机学科的所有课程链接
    使用scrapy爬取腾讯社招,获取所有分页的职位名称及chaolia、类型、人数、工作地点、发布日期超链接
    python2使用bs4爬取腾讯社招
    使用python2爬取百度贴吧指定关键字和分页帖子楼主所发的图片
    提问的智慧
    深刻理解系统架构师和系统分析师定义
    Redis基础数据结构与核心原理
  • 原文地址:https://www.cnblogs.com/qq254980080/p/11785677.html
Copyright © 2020-2023  润新知