node.js中的回调外部函数声明

时间:2018-08-04 23:52:03

标签: node.js callback

我正在做一个node.js讲习班,目前正在学习有关回调的知识。我需要导出一个函数并使用异步函数来读取文件。到目前为止,一切都很好。尽管我无法理解练习的最后一段(下),“对于某些东西来说是“意识形态”的意味着什么?另外,我不能理解将callback用作参数,然后在函数中简单地命名为“ foo ..”。我猜想我在概念上缺少一些东西。预先感谢您能否帮助我理解。

还要记住,检查错误并执行
是很习惯的   回调函数中的早期返回:

console.log(array.sort(function(a, b) { return a<b ? 1 : a>b ? -1 : 0; } ))



console.log(array.sort().reverse())

2 个答案:

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

}`