【发布时间】:2016-04-24 18:59:17
【问题描述】:
我的 nodejs 应用程序中有一个类,代码如下:
var mongoose = require('mongoose');
var Roles = mongoose.model('roles');
var Promise = require("bluebird");
module.exports = Role;
var err = null;
var id;
function Role(name, companyId) {
this.err = err;
this.name = name;
this.companyId = companyId;
this.id = getId(name, companyId);
}
var getId = function (name, companyId) {
return new Promise(function(resolve, reject) {
Roles.findOne({companyId:companyId, name:name}, function(err,result) {
resolve(result._id);
});
});
};
当我调用类时,id 处于待处理状态:
var currentRole = new Role(myRole, comId);
console.log(currentRole);
当它们被解析时,我如何从类中获取值?
【问题讨论】:
-
如果有
err,你应该reject。 -
看看Is it bad practice to have a constructor function return a Promise? - 你可能不想做
currentRole.id.then(…)