【发布时间】:2017-03-11 13:23:26
【问题描述】:
我有以下位于服务中的方法,该方法特别节省了用户配置文件,没有什么令人兴奋的。
// Save user Profile
saveProfile(user: User): Observable<Response> {
return Observable.fromPromise<Response>(
this.af.database.object('/users/' + user.userId).update({
first_name: user.first_name,
display_name: user.display_name,
biography: user.biography,
intent: user.intent,
seeking: user.seeking,
training: user.training,
dayDOB: user.dayDOB,
monthDOB: user.monthDOB,
yearDOB: user.yearDOB,
hobbies: user.hobbies,
last_name: user.last_name,
gender: user.gender,
address: user.Address
}).then((profile: any) => {
return new Response('Profile has been saved successfully', true);
})
.catch((err: any) => {
return new Response('Unable to save profile at this time, please try again later.', false);
}) as Promise<Response>
)
}
如您所见,它返回Reponse 类型的Promise 这是我的自定义类,其中包含string 和boolean 我根据更新是否成功填充这些值。然后我在我的组件中引用 boolean 值来决定下一步做什么。
我遇到的问题是,当我使此方法失败时,它不会返回该方法的 catch 部分中指定的内容,console.log 我指定的任何自定义文本也不会返回,而是仅写入以下内容:
我已经搜索了firebase 文档,但无济于事,以前有没有人遇到过这种情况?你设法解决了吗?
但是说真的,如果你不能捕捉到这些异常,为什么还要麻烦.catch。
【问题讨论】:
标签: angular firebase firebase-realtime-database angularfire2