我正在尝试打字稿和一个名为TypeORM的库,并为我的模型构建一些自定义存储库。
我的一个模型Buyer
的{{1}}带有方法BuyerRepository
。
如果我希望此方法在保存成功的情况下返回createAndSave
,或者在出现问题的情况下返回Buyer
,那么我应该使用Error('some reason')
吗?
我想我想做的事情类似于Go:throw new Error('buyer already exists')
答案 0 :(得分:1)
最流行的方法是引发错误并捕获错误:
try {
const res = await byuerRepo.createAndSave(...);
console.log('buyer:' res)
} catch(e) {
console.log(e)
}
您也可以使用简单的Promises:
byuerRepo.createAndSave(...)
.then(res => {
console.log('buyer:' res)
})
.catch(e) {
console.log(e)
}
要实现类似于Go的功能: https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/
或者,如果您喜欢FP,此库将非常有用: https://gcanti.github.io/fp-ts/modules/Either.ts.html