【发布时间】:2020-10-14 20:07:26
【问题描述】:
这里是新的,如果我没有按照您的期望进行布局,敬请见谅。
所以我将我的反应式表单数据提交到服务器(mongodb 数据库)。然后,我想路由到一个新路径,将数据库返回到前端的 ID 元素作为 URL 中的参数传递。
这是我目前在提交功能中所拥有的:
onsubmit(){
let opdata = null;
this.location.saveOpnote(this.form.value)
.subscribe(response => {
opdata = response
console.log(response)
})
this.route.navigate(['/opnotes/mopsdisplay', opdata._id])
}
所以数据完美保存,后端返回新条目的_id。浏览器抱怨:
错误类型错误:无法读取 null 的属性“_id”
我的理解是浏览器在保存到服务器的异步部分完成并且_id可用之前正在查看这个。
我该如何解决这个问题?
非常感谢。
【问题讨论】:
-
没有办法解决这个问题。异步必须是异步的。如果您的订阅库有办法转换为
Promise,请使用它,然后使用await它或在返回的Promise上调用.then()。你标记了angular,所以也许看看这个答案:Subscription to promise。本质上,你想要subscription -> promise -> .then() -> navigation。 -
导航功能不在响应处理内是不是有原因?
标签: javascript angular mongodb asynchronous