javascript - 等待函数完成做其他事情 node.js 强大
问题描述
所以我的问题是代码末尾的 console.log() 总是在强大的表单解析完成之前打印,我不知道如何避免这种情况
exports.scrape = (req,res) => {
let form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, (err, fields, files) => {
if (err) {
return res.status(400).json({
error: 'Image could not be uploaded'
});
}
const { endpoint } = fields;
if (!endpoint ) {
return res.status(400).json({
error: 'All fields are required'
});
}
if (files.file) {
if (files.file.size > 1000000) {
return res.status(400).json({
error: 'Image should be less than 1mb in size'
});
}
var oldPath = files.file.path;
console.log(oldPath);
var newPath = path.join(__dirname, '../src/files/csv')
+ '/'+files.file.name
var rawData = fs.readFileSync(oldPath)
fs.writeFile(newPath, rawData, function(err){
if(err) console.log(err)
return console.log(newPath);
})
}
})
console.log("测试!"); }
然后当解析完成后,我需要创建另一个操作,以便稍后在另一个脚本中使用它,该脚本将在解析结束时初始化,这将是 console.log("test!") 所在的位置
解决方案
基本了解回调的工作原理。然后你会意识到将 console.log 放在底部并不是按时间顺序的结束。
推荐阅读
- python - Django 查询集搜索功能不起作用。返回未过滤的结果
- c++ - 二分查找函数重用比较值
- java - Swing 中的 java.lang.UnsatisfiedLinkError
- java - 无法使用隐式意图实现屏幕截图
- ios - 广告没有展示,因为 admob 没有看到我发布的应用
- regex - 使用正则表达式我想将 () 之间的文件名中的所有内容移动到中间并删除 ()
- mysql-workbench - 带约束的两个表之间的关系
- azure-logic-apps - 如何为具有托管标识的逻辑应用创建与 Azure KeyVaul 的 Api 连接
- java - 如何使用带有 PHP Curl 的 Spring Boot ReST API
- python - Python - 在熊猫数据框中使用多个替换来拆分和替换列表的一部分