关于异步函数fs.readFile()中保存回调数据的问题
为什么console.log(theFile)
能输出数据,而不能保存到dateArray
数组中。
如果要保存到dataArray
数组中,是不是也要构造一个异步函数
AV.File
是leanCloud
中上传文件的一个方法。
code
var dataArray = [];
for(let i = 0; i < files.iconImage.length; i++) {
// var iconFile = files.iconImage[i];
if(files.iconImage[i].size !== 0){
fs.readFile(files.iconImage[i].path, function(err, data){
if(err) {
return res.send('读取文件失败');
}
var theFile = new AV.File(files.iconImage[i].originalFilename, data);
theFile.save().then(function(theFile){
console.log(theFile);
dataArray.push(theFile);
}).catch(console.error);
});
} else {
res.send('请选择一个文件。');
}
}
res.json({
success: true,
data: dataArray
})
});
1 回复
啥? AV.File (AV 文件),我们懂的,老铁稳。。。
你需要把 res.json
放到 then 的回调函数里。
theFile.save().then(function(theFile){
console.log(theFile);
dataArray.push(theFile);
res.json({
success: true,
data: dataArray
})
}).catch(console.error);