Nodejs - 普通回调与 exec

Chr*_*odz 5 mongoose mongodb

最近几天我一直在学习 nodejs,我偶然发现了一些我找不到任何好的解释的东西。

基本上它exec与普通回调有关,即(err, res) => {},如下所示:

Product.find({}).exec((err, products) => {});

Product.find({}, (err, products) => {});
Run Code Online (Sandbox Code Playgroud)

我找到了更多使用 的示例exec,但是当我阅读有关内容时,我exec真的不明白为什么。他们似乎都在对我做同样的事情。

所以,我的问题是,我应该使用一个而不是另一个,如果是,为什么?

编辑:

只是为了清楚Product起见,是 MongoDB 模型/模式。像这样:

const Product = mongoose.model('Product', new Schema({
  title: {type: String, default: ''},
  description: {type: String, default: ''},
  price: {type: Number, default: ''}
}));
Run Code Online (Sandbox Code Playgroud)

Lib*_*hew 4

只需参考以下答案Mongoose - What does the exec function do?

执行通常用于执行动态创建的查询。

以下是一个简单的代码,它给出了可以在哪里使用 exec 的想法。

employee.find({}, function (err, docs) {
    // statements
});

employee.find({}).populate("designation").exec(function (err, docs) {
    // statements
});
Run Code Online (Sandbox Code Playgroud)