为什么不回调?

时间:2016-06-24 15:01:06

标签: javascript node.js

我有一个从Redis商店删除元素的函数:

function removeDevice(identificator, callback){
    client.srem('devices', identificator, function(err) {
        callback(true);
    });
}

我称之为:

removeDevice(function (data) {
        res.json(data);
    });

它给了我错误:

TypeError:回调不是该行的函数:

callback(true);

2 个答案:

答案 0 :(得分:3)

您传递的功能是第一个参数(identificator),而不是第二个(callback):

这里只有一个论点:

removeDevice(function (data) {
    res.json(data);
});

对于第二个参数的回调,必须在它前面有一个:

removeDevice(somethingHere, function (data) {
//           ^^^^^^^^^^^^^^^
    res.json(data);
});

答案 1 :(得分:1)

您的函数需要2个参数。

function removeDevice(identificator, callback){

但是,您只传递了1个参数,因此identificator保存传递的函数值