函数调用的困惑

大家好,小白在阅读代码的时候产生了一些困惑,下面是一个调用bannerlist的函数,代码中间有一个调用api.getBannerList的函数:

BannerList:function({commit}){
    commit(types.COM_LOADING_STATUS,true);
    api.getBannerList(function(res){
        commit(types.HOME_GET_BANNER_LIST,res.data);
        commit(types.COM_LOADING_STATUS,false);
    })
},

下面代码是api.getBannerList的方法:

getBannerList:function(cb){
    axios.get(url + 'billboard/home?t=' + new Date()*1 + '&callback=?').then(function(res){
        if(res.status >= 200 && res.status <300){
            cb(res.data)
        }
    }).catch((error) => {
        // new Error('desc');
        return Promise.reject(error)
    })
},

这里可以看到api.getBannerList会有一个参数值cb,cb对应第一段代码是一段函数,这段函数看起来又像是个回调函数。。
请问参数值cb在第二段代码起到的作用是什么

阅读 2.9k
3 个回答

这就相当于调用函数事传递了一个函数参数。有什么特别的地方吗?而且,为什么不直接返回promise对象呢?

cb 对应的是

function(res){
    commit(types.HOME_GET_BANNER_LIST,res.data);
    commit(types.COM_LOADING_STATUS,false);
}

cb的作用是在ajax请求,成功获取数据之后,触发mutation,改变store中的值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题