【微信小程序】回调函数

本文详细解析了回调函数的概念,通过微信授权登录的JavaScript示例,展示了如何在functionA中使用回调functionB。讲解了对象参数解构与直接写在括号中的两种传参方式,并介绍了回调在前端开发中的应用场景。
摘要由CSDN通过智能技术生成

回调函数定义

回调函数就是将函数function B以参数的形式传入另一个函数function A中,当function A的函数执行过程中符合某一条件的时候或者执行完毕后执行参数中传入的函数,这个传入的函数function B就是回调函数。

我们以调用的角度分析,一开始我们肯定是在一个方法中调用function A,那我将这个调用function A的方法称为function C,在执行function A的时候调用了function C中定义的函数,这个就是回调

简单的说就是C调用了A,A中又调用了C中定义的方法

例子

微信授权,将授权成功后的code通过回调函数返回给调用方。
requestUtil.js


class TestRequest {
  authentication(params) {
    let nickName = params.detail.userInfo.nickName
    console.log(nickName)
    //获取code
    wx.login({
      success(res) {
      	//回调
        params.callback(res)
      }
    })
  }
}

export {
  TestRequest,
}

wxml

<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">登录</button>

js

import {
  TestRequest
} from "../../utils/requestUtil.js"
let request = new TestRequest()
Page({
  data: {
    list: null
  },
  onGetUserInfo: function (e) {
    request.authentication({
      detail: e.detail,
      callback: (res) => {
      	//回调函数
        console.log(res)
      }
    })
  },


})

上面的例子中,authentication方法的多个参数是通过es6对象解构 ,实现对象的方式来传参。
也可以去掉{}直接写在()中,这样写的好处是比较清晰,调用方法的时候有参数提示
如下
requestUtil.js


class TestRequest {
  //多个参数直接写在外面
  authentication(detail, callback) {
    let nickName = detail.userInfo.nickName
    console.log(nickName)
    //获取code
    wx.login({
      success(res) {
        callback(res)
      }
    })
  }
}

export {
  TestRequest,
}

js

  onGetUserInfo: function (e) {
    request.authentication(e.detail,res=>{
        console.log(res)
    })
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值