• Promise对象和回调函数,解决异步数据传递问题


    下面的代码例子,均已小程序的异步请求数据为案例来说明

    1.利用回调函数,来解决异步数据传递问题

     1 异步操作api.js
     2 const getBooks = (url, callback) => {
     3   wx.request({
     4     url: url,
     5     method: 'GET',
     6     header: {
     7        "Content-Type": "json"
     8     },
     9     success: function (res) {
    10        console.log(res)
    11        callback(res)
    12     }
    13   })
    14 }
    15 module.exports = {
    16      getBooks: getBooks
    17 }
    18 
    19 引入api.js
    20 
    21 api.getBooks('参数',回调函数)
    22 
    23 写法一:
    24 api.getBooks('https://api.douban.com/v2/movie/search?tag=%E5%96%9C%E5%89%A7&count=4', res => {
    25      console.log(res)
    26 })
    27 
    28 写法二:
    29 
    30 let x = () => {console.log(res)}
    31 api.getBooks('参数', x)

    2.利用Promise来解决异步回调数据传递的问题

    异步操作api.js
    const getBooks = (url) => {
      return new Promise((resolve,reject) => {
        wx.request({
          url: url,
          method: 'GET',
          header: {
             "Content-Type": "json"
          },
          success: function (res) {
             resolve(res)
          }
        })
      })
    }
    module.exports = {
         getBooks: getBooks
    }
    
    引入api.js
    
    api.getBooks('https://api.douban.com/v2/movie/search?tag=%E5%96%9C%E5%89%A7&count=4').then(res => {
         console.log(res)
    })

    以上两种方法均可以解决异步操作中数据传递的问题,也是比较简单,比较实用的两种方法

  • 相关阅读:
    不要同时使用ReentrantLock类与synchronized关键字锁定会修改同一个资源的不同方法
    java中volatile关键字的含义
    浅谈操作系统对内存的管理
    Java线程池使用说明
    写在清明节之后
    PY一天一学
    24小时只睡了1个小时
    关于团队关于吐槽
    出尔反尔
    时间都去哪儿了?
  • 原文地址:https://www.cnblogs.com/songdongdong/p/7530852.html
Copyright © 2020-2023  润新知