Javascript 猫鼬。承诺和承诺有什么区别?
对于NPM Bluebird Promise库包,有两种方法可以实现Mongoose承诺。这两者有什么不同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
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
后缀