【发布时间】:2021-11-14 23:03:09
【问题描述】:
我正在处理以下代码。这是在 Vue 应用程序上实现的,并使用了许多方法,每个方法都返回一个 Axios 承诺。我试图链接这些,所以当提交新评论时,服务器会检查电影是否已经存在。如果没有,它会创建一部新电影。然后它应该使用带有 movieId 参数的 postReview 创建一个新评论。需要 movieId 才能创建新评论。 checkMovieExists() 和 postMovie() 方法都返回一个 movieId 作为响应。
问题是当我将 x.data() 或 y.data() 记录到控制台时,movieId 显示正确。但是,如果我将 x.data 或 y.data 分配给 movieId,则它是未定义的。这意味着我不能将其用作发布电影的参数。
submit() {
let movieId = 0;
this.checkMovieExists(this.movie.imdb_id)
.then((x) => {
console.log(x.data);
if (x.data == 404) {
this.postMovie(this.movie.imdb_id, this.movie.original_title).then(
(y) => {
console.log(y.data); //Displays correctly
movieId = y.data;
console.log(movieId); //Displays as undefined
}
);
} else {
movieId = x.data;
}
})
.then(this.postReview(movieId));
},
(顺便说一句,我知道电影 id 为 404 的错误。这是我的下一个任务!)
【问题讨论】: