我尝试使用Promise,但是发现构造函数中是不能这么做的,因为构造函数是通过new调用的,返回的是对象 而Promise是要求返回一个Promise对象的,有什么好办法可以在构造函数中比较好的调用callback呢?
9 回复
var Person = function(name, callback) {
this.name = name;
callback(args);
}
var person = new Person('xx', retrieveDataFromDatabase);
function retrieveDataFromDatabase() {
//...
}
类似这种的
类似这种
var util = require('util');
var events = require("events");
// 定义时
var User = function (options) {
var self = this;
events.EventEmitter.call(this);
self.name = options.name;
self.age = options.age;
// do some async operation
setImmediate(function () {
self.emit('ready');
})
};
util.inherits(User, events.EventEmitter);
// 使用时
var alsotang = new User({name: 'alsotang', age: 3});
alsotang.on('ready', function () {
// do what you want
console.log('I am ready')
})
@louis-sherren 我的意思是我不用new这种方式来构造一个对象,因为没有什么必要。
你的问题让我又找到了一个不用new的理由,就是不支持异步。
var Persion = function(name, callback) {
var newPerson = {name: name};
httpRequest(function(age) {
newPerson.age = age;
callback(newPerson);
});
}
Person('xxx', functon(person) {
//这样岂不是很好
});