我试图建立一个警告窗口,说明发生了错误,当尝试离线发布消息时。但是捕获似乎并没有起作用,也许它只适用于其他情况? 这是我的代码:
return (dispatch) => {
dispatch({
type: POST_TO_DB,
});
firebase.database().ref(locationInDB).push(object)
.then((data) => {
dispatch({
type: POST_TRADE_TO_DB_SUCCESS,
}); // success
})
.catch((err) => {
console.log("failed to post...")
dispatch({
type: POST_TRADE_TO_DB_FAILED,
}); // failed
});
};
还有其他选择吗?或者我做错了什么?
答案 0 :(得分:1)
当没有网络连接时,Firebase客户端会将挂起的写入保留在内存中,直到网络连接恢复为止,此时它将完成写入。
如果服务器上的写入失败,则会触发catch()
子句,而不是在无法完成时。
另见: