这是一个使用mongoose为我的mongoDB创建对象的简单函数:
Item.create({ name: req.body.newItem },function (err,res) {
if (err) return handleError(err);
// saved!
});
现在,我正在学习承诺的概念。由于create API返回了一个可选的Promise,出于学习目的和可读性,我想使用它。
我这样做的方式是这样的:
let newItem = Item.create(
{name: req.body.newItem}).then(() => console.log("Success"),() => console.log("Error!"));
有效。但是我在这里欺骗自己。我真正想要的是具有与上面相同的代码,这意味着使用(err,small)
并将其合并到我的.then()
中。
我知道每一个承诺都有一个已解决或被拒绝的状态,并且可以兑现这些承诺。我在这里不知道如何执行此操作,因为不允许.then((resolve,reject)
编辑:
我刚刚尝试过:
let newItem = Item.create(
{name: req.body.newItem}).then(result => console.log("Success: " + result),(error) => console.log("Error: " + error));
这似乎正在工作。我认为那时我还没有完全掌握箭头概念。我认为相当于
function(a,b){
if(a){
do Something()
}else{ //so it has to be b
do otherThing()
}
将是.then(a,b) => doSomething(),do otherThing()