Javascript setTimeout在角度5下不工作
我很确定这是一个愚蠢的问题,这就是为什么我找不到答案的原因(或者至少我希望这是一个有快速答案的愚蠢问题)。出于某种原因,setTimeout在我的Angular 5组件中不起作用。相关代码如下所示:Javascript setTimeout在角度5下不工作,javascript,angular,settimeout,angular5,Javascript,Angular,Settimeout,Angular5,我很确定这是一个愚蠢的问题,这就是为什么我找不到答案的原因(或者至少我希望这是一个有快速答案的愚蠢问题)。出于某种原因,setTimeout在我的Angular 5组件中不起作用。相关代码如下所示: onSubmit(...movieData) { this.movieService.addMovie(movieData) .subscribe( movie => { this.messageService.a
onSubmit(...movieData) {
this.movieService.addMovie(movieData)
.subscribe(
movie => {
this.messageService.add("Movie Was Successfully added!")
let title = movie['title'], year = movie['year']
setTimeout(() => {
this.movieService.getMovie(title, year);
}, 5000)
},
error => {
console.log(error)
this.messageService.add(error.error)
}
)
}
正如您从代码中看到的,我试图将一些电影数据添加到数据库中。如果电影添加成功,我想显示一条消息5秒钟,然后使用设置超时,导航到另一页(编辑,使用
this.movieService(title,year)
调用结束编辑)。显示消息,但setTimeout函数中没有任何内容运行。我甚至在setTimeout之前和之内添加了console.log,以确认setTimeout没有运行。有人知道我做错了什么吗?movieService.getMovie
如果返回您未订阅的可观察内容,则可能不会启动。这是因为从HttpClient
返回的大部分可观察对象都是冷可观察对象,在订阅之前不会执行
另请参见您应使用
终止您的陈述代码>字符。示例:this.messageService.add(“电影已成功添加!”)代码>@Igor编号使用代码>不是强制性的-我从不使用them@messerbill看看这个@ADreNaLiNe DJ是的,这是真的,因此你是对的。但我总是在“框架给定结构”(如express和angular)中编写代码,所以我几乎从来没有遇到过这种情况!但是我忘了!非常感谢。我可以看到,如果返回一个您未订阅的可观察对象,则可能不会触发movieService.getMovie
。我不明白如果在setTimeout
的回调中添加console.log
语句,它们将不会出现在浏览器中。您是否在setTimeout
之前添加了一条log语句,并在setTimeout
中添加了一条log语句,以查看是否至少出现了其中一条?