在Node的模块async

时间:2018-11-24 13:28:39

标签: node.js asynchronous callback

我学习Node.js,并在MDN的指导下做了一个小型网站。

我使用模块async到达了那里。
这是代码

async.parallel({
    book_count: function(callback) {
        Book.countDocuments({}, callback); // Pass an empty object as match condition to find all documents of this collection
    },
    book_instance_count: function(callback) {
        BookInstance.countDocuments({}, callback);
    },
    book_instance_available_count: function(callback) {
        BookInstance.countDocuments({status:'Available'}, callback);
    },
    author_count: function(callback) {
        Author.countDocuments({}, callback);
    },
    genre_count: function(callback) {
        Genre.countDocuments({}, callback);
    }
}, function(err, results) {
    res.render('index', { title: 'Local Library Home', error: err, data: results });
});

};

此代码计数数字文档在数据库中。 我不明白什么是参数“回调”。这些属性“ book_count,book_instance_count,author_count等”中没有发送任何内容,但是所有这些功能都能很好地工作。 请给我解释一下,什么是奇怪的参数“回调”以及如何使用它。

1 个答案:

答案 0 :(得分:1)

回调函数

  

回调函数是作为参数传递给另一个函数的函数,然后在外部函数内部调用该回调函数以完成某种例程或操作。

function greeting(name) {
  alert('Hello ' + name);
}

function processUserInput(callback) {
  var name = prompt('Please enter your name.');
  callback(name);
}

processUserInput(greeting);

https://developer.mozilla.org/en-US/docs/Glossary/Callback_function