簡體   English   中英

節點js TypeError:callBack不是函數

[英]node js TypeError: callBack is not a function

這里有兩個功能

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);
    });
}

show數據在作為回調發送時顯示數據和數組,但由於節點js抱怨pushArray不能作為回調工作

    array.forEach(function(item) {
         ^

TypeError: Cannot read property 'forEach' of undefined

那是回調還是數組問題? 是否有人可以解釋根本原因?

 fsReadFile(csvPath1, pushArray(). array1); 

您將立即調用pushArray ,不帶任何參數(因此arrayundefined ),並且將返回值作為第二個參數傳遞。 不要在那叫它

然后您有一個錯字,而您有一個錯字. 而不是逗號(因此,您嘗試讀取pushArray()的返回值的array1屬性,並且根本不傳遞第三個參數)。

fsReadFile(csvPath1, pushArray, array1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM