我想弄清楚做promisification的正确方法 - 更具体地说,使用蓝鸟。我想出了一些代码,使用新的承诺:试图找出蓝鸟做承诺流的方式
function createUser(data) {
return new Promise((resolve, reject) => {
User.createAsync(user)
.then((doc) => {
resolve(doc);
})
.catch((err) => {
reject(err);
});
});
}
function create(data) {
return new Promise((resolve, reject) => {
User.findOneAsync({username: data.username})
.then((user) => {
if (user) {
resolve(`Username ${data.username} is already taken`);
} else {
createUser(data)
.then((user) => {
resolve(user);
})
}
})
.catch((err) => {
reject(err);
});
})
}
但我觉得我没有得到太多了蓝鸟这种方式,并通过它似乎像这样的文档浏览后的事应该避免的反模式。我将如何去做这个流程更多的蓝鸟风格或更好的promisified一般?
避免['Promise' constructor antipattern](http://stackoverflow.com/q/23803743/1048572?What-is-the-promise-construction-antipattern-and-how-to-avoid-it)! – Bergi