Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猫鼬。承诺和承诺有什么区别?_Javascript_Node.js_Mongodb_Mongoose_Promise - Fatal编程技术网

Javascript 猫鼬。承诺和承诺有什么区别?

Javascript 猫鼬。承诺和承诺有什么区别?,javascript,node.js,mongodb,mongoose,promise,Javascript,Node.js,Mongodb,Mongoose,Promise,对于NPM Bluebird Promise库包,有两种方法可以实现Mongoose承诺。这两者有什么不同 let bluebird = require('bluebird'); let mongoose = require('mongoose'); bluebird.promisifyAll(mongoose); 与: let bluebird = require('bluebird'); let mongoose = require('mongoose'); mongoose.Promis

对于NPM Bluebird Promise库包,有两种方法可以实现Mongoose承诺。这两者有什么不同

let bluebird = require('bluebird');
let mongoose = require('mongoose');
bluebird.promisifyAll(mongoose);
与:

let bluebird = require('bluebird');
let mongoose = require('mongoose');
mongoose.Promise = bluebird;

promisifyAll
以特定于蓝鸟的方式自动将mongoose的回调api转换为承诺。它适用于每个返回标准回调并使用对象(不仅仅是mongoose)的库,并且由bluebird编写

mongoose.Promise
是mongoose使用promises的标准方式,它是在更高版本中添加的,是特定于mongoose的。它也稍微慢一点哈!因为promisifyAll不必使用承诺构造函数,因为它是特定于bluebird的(其中
.promise
适用于任何承诺实现),所以它比bluebird包装器更好

在大多数情况下,两者都可以使用
.Promise=bluebird
,其优点是不必在函数名后面附加
Async
后缀