到目前为止,我尝试了
一个
class MyException extends Error {
constructor(message, code) {
super(message);
this.code = code;
}
}
exports.MyException = MyException;
VueJS 说"导出没有定义">
如果我只是这样做
乙
exports.MyException = () => {}
然后 Firebase 说 MyException 不是构造函数。当我
throw new MyException()
实际上,一旦异常通过可调用函数传递,它仍然是一个instanceOf
吗?
我应该一起去吗
C
try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
}
C是一种好的做法吗?
如可调用云函数的文档中所述:
若要确保客户端获得有用的错误详细信息,请从 可通过抛出(或返回拒绝的承诺(来调用
functions.https.HttpsError
实例 .
所以做
try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
}
行不通。
在可调用云函数中,您需要执行以下操作:
try {
let d = await db.collection('x').document('y')
if (!d.exists) {
let e = new Error('Document Does not Exist')
e.code = 'ERR_NO_DOCUMENT'
throw e
}
else {
return d.data()
}
} catch (error) {
throw new functions.https.HttpsError('internal', error.message);
}