我正在做一个node.js讲习班,目前正在学习有关回调的知识。我需要导出一个函数并使用异步函数来读取文件。到目前为止,一切都很好。尽管我无法理解练习的最后一段(下),“对于某些东西来说是“意识形态”的意味着什么?另外,我不能理解将callback用作参数,然后在函数中简单地命名为“ foo ..”。我猜想我在概念上缺少一些东西。预先感谢您能否帮助我理解。
还要记住,检查错误并执行
是很习惯的
回调函数中的早期返回:
console.log(array.sort(function(a, b) { return a<b ? 1 : a>b ? -1 : 0; } ))
console.log(array.sort().reverse())
答案 0 :(得分:0)
在这种情况下,“惯用”是指“普遍接受的惯例”或“适当的惯例”。
还请记住,在回调函数中检查错误并尽早返回是一种普遍接受的做法:
在这种情况下,“成语”是一种编程样式,因此当某些习惯用法时,它是一种合适的编程样式。
Collins dictionary中成语的一个含义是:
惯用语
可数名词[通常是单数]
特定的成语是音乐,舞蹈或建筑之类的特定样式。
在这种情况下,这将是一种“编程风格”。
将此扩展为“惯用的”意味着在这种情况下这是一种自然的处理方式。
在这种情况下,我个人不太可能使用“惯用语”,而是会说诸如“常规做法”或“可接受的做法”或“推荐的做法”或“可接受的设计模式”之类的话。
答案 1 :(得分:0)
在重新阅读了官方文档和其他一些文档之后,我得以完成练习。我的解决方案如下:
主程序 lsdmod.js
var mi = require('./mod1.js');
mi(process.argv[2],process.argv[3], function(err,data) {
if (err)
return console.log('error:' + err);
for (var i of data){
console.log(i);
}
});
模块 mod1.js :
module.exports = function(ruta, ext, callback){
var fs = require('fs');
var path = require('path');
list = [];
fs.readdir(ruta, doneReading);
function doneReading(error, data) {
if (error) {
return callback(error);
}
for (i of data) {
if (path.extname(i) == "."+ext) {
list.push(i);
}
}
return callback(null, list);
}
}`