Js (Javascript) 回调的简单理解

当时学Java的时候不理解什么叫回调,看了好长一段时间,也没找到什么相对简单的讲解。

  1. Java 内因为不能使用委托(方法当成参数传递),所以只能借助Interface(接口)来实现。在需要回调的地方给一个接口参数,用到的时候,传接口实例即可(扯远了)。
  2. Javascript因为可以使用委托,那么简单很多,我就不说得很复杂。回调说白了,就是:我需要返回东西给你,但是我也不知道什么时候返回给你(异步)
//退款
let Refund = {};

//退款
Refund.done = function (callback) {
    let postData = {
        //TODO
        // orderid: '',
        // openid: '',
    };
    Fetch.postObjData(API_URL.mobile.refundUrl, postData).then((data) => {
        console.log(data);
        //TODO 需要判断是否成功
        if (typeof callback === "function") {
            callback();
        }
    });
};

这边方法done需要传一个参数过来,这个参数是function类型的,然后我就进行了网络请求(异步),等我网络请求结束,我就调用这个方法callback();,然后你调用我这个方法的地方,callback也就被调用了。谁调用的?我这边(Fetch里面)调用的。

function callback() {
    console.log('被调用成功');
}

Refund.done(callback);

这边还需要考虑一个问题:就是回调的作用域问题。

流程是:

  1. 我调用你->Refund.done给了你一个方法类型的参数callback(名字随便取)
  2. 你开始执行,你执行到Fetch里面,Fetch执行完毕,你需要返回给我东西,怎么返回,通过我刚刚给你的callback,你执行了callback,那么就相当与我这边的callback被执行,因为他俩就是一个方法对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值