vuejs callback问题?

vuex项目学习中,从github找的别人的代码,请问这里的"callback(_products)"可以这样用吗,我不理解这种写法

/**
 * 模拟服务器获取数据
 */

var _products = [
  {"id": 1, "title": "iPad 4 Mini", "price": 500.01, "inventory": 2},
  {"id": 2, "title": "H&M T-Shirt White", "price": 10.99, "inventory": 10},
  {"id": 3, "title": "Charli XCX - Sucker CD", "price": 19.99, "inventory": 5}
]

export default {
    //模拟获取
    getProducts:function(callback){
        //这里的callback是什么意思?
        setTimeout(callback(_products), 300)
    },

}
阅读 6.8k
6 个回答

callback如果是return function(products){/**/}的话,应该是没有问题的

300ms后模拟获取后台的数据,一般是没有和后端联调的时候,自己编的数据来看看程序是否按预期运行

从语意上已经是错的 先执行callback再setimeout有什么意义 除非他执行callback方法返回一个新方法

定时器这么传参貌似不对吧。
这样会直接立即执行,而不是300ms后。你试下把300改成10000看看有没有效果

callback 是个函数, _products 是个全局变量,callback(_products) 只是执行回调函数而已。

这样说吧.
这里的_products就是一组数据.
你在调用getProducts()方法的时候. 要在cb中去获取数据.

getProducts(res => {
    // 这里做处理是吧?
    // 这个res其实就是 _products
});

setimeout是为了更好的模拟后台请求情况300毫秒后这里的res才能获取到值.

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