javascript - Node.js 类型错误 : callBack is not a function

标签 javascript node.js

这里有两个函数

function pushArray(data, array){
    var index = -1;
    array.forEach(function(item) { 
        if(item.name === data.name) { 
            index = array.indexOf(item);
            console.log('found existing item at ' + index);
        }
    });
    if(index >= 0){
        array[index] = newItem;
    }else {
        array.push(newItem);        
    }
}

function showData(data, array){
    try {
        if(data){
            console.log('data \n');
            console.log(data.toString());
            console.log(array);
        }
    } catch (error) {
        console.log("Showing data caused error: " + error);
    }
}

这就是回调的调用方式

fsReadFile(csvPath1, pushArray. array1);
fsReadFile(csvPath1, showData, array1);

function fsReadFile (filePath, callBack, array) {
    fs.readFile(filePath, function(err, data) {
        if(err) {
            console.error(err);
        }
        callBack(data, array);
    });
}

当作为回调发送时,显示数据显示数据和数组,但正如 Node js提示的那样,pushArray不能作为回调工作

    array.forEach(function(item) {
         ^

TypeError: Cannot read property 'forEach' of undefined

这更多的是回调还是数组问题?如果有人可以解释根本原因吗?

最佳答案

fsReadFile(csvPath1, pushArray(). array1);

您正在立即调用pushArray,不带任何参数(因此array未定义),并且返回值作为第二个参数传递。 不要在那里调用它

然后你有一个拼写错误,你有一个 . 而不是逗号(所以你尝试读取 pushArray( 返回值的 array1 属性) ) 并且根本不传递第三个参数)。

fsReadFile(csvPath1, pushArray, array1);

关于javascript - Node.js 类型错误 : callBack is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39958956/

相关文章:

Node.js 从 Web 获取图像并使用 base64 进行编码

javascript - 如何在 Firebase Firestore 中获取单个文档数据(没有 promise )

javascript - 在 react 中渲染输入数组

javascript - 如何缩小 webpack 包?

javascript - 重载的 typescript 函数参数不适用于 async 关键字

javascript - 使用 fast-csv 模块转换文件 utf8

javascript - 如何从 Outlook 加载项创建新电子邮件?

javascript - Meteor 响应式(Reactive)嵌套对象更新父对象

node.js - Azure 移动服务导出模块和表对象

javascript - 解决 Node.js 类初始化器上的回调 hell