[英]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
,不帶任何參數(因此array
是undefined
),並且將返回值作為第二個參數傳遞。 不要在那叫它 。
然后您有一個錯字,而您有一個錯字.
而不是逗號(因此,您嘗試讀取pushArray()
的返回值的array1
屬性,並且根本不傳遞第三個參數)。
fsReadFile(csvPath1, pushArray, array1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.