【发布时间】:2017-04-27 10:09:25
【问题描述】:
A function whose declared type is neither 'void' nor 'any' must return a value.
我有一个createOrder 函数,它应该返回一个承诺。我在函数中有数据库调用,我想在所有数据库操作完成后解决createOrder 函数的承诺。
问题是打字稿编译器不允许我从数据库函数返回承诺返回承诺,因为它认为函数声明(返回承诺)没有实现:
createOrder(order:Array<Cartitem>, sum:number):Promise<Array<Cartitem>> {
this.db.put(newOrder)
.then((r)=>{
//other operations
return new Promise<Array<Cartitem>>((resolve) => {
resolve(order);
});
})
.catch(function (err) {
console.log('put order:', err);
// return new Promise<Array<Cartitem>>((reject) => {
// reject(order);
// });
});
}
我可以在函数末尾返回一个 Promise,但这当然对除了编译器之外的任何东西都没有好处。我应该在这里使用简单的回调吗?
【问题讨论】:
-
谢谢大家,这很快!
标签: javascript angularjs angular typescript