Angular 角度-从api获取数据,第一次数组未定义时出现问题

Angular 角度-从api获取数据,第一次数组未定义时出现问题,angular,api,service,get,fetch,Angular,Api,Service,Get,Fetch,我在从API获取数据时遇到问题,我在提交表单时从API获取数据。问题是当我控制台记录数组以查看我接收到的元素时,我的数组是未定义的,只有当我第二次单击(提交表单)时,数组才包含数据。 我尝试在组件电影中的submitForm函数中控制数组,您可以在代码中看到它 从“@angular/core”导入{Injectable}; 从“@angular/common/http”导入{HttpClient}; 从“rxjs”导入{Subject,observeable,pipe}; 从“./model

我在从API获取数据时遇到问题,我在提交表单时从API获取数据。问题是当我控制台记录数组以查看我接收到的元素时,我的数组是未定义的,只有当我第二次单击(提交表单)时,数组才包含数据。 我尝试在组件电影中的submitForm函数中控制数组,您可以在代码中看到它

从“@angular/core”导入{Injectable};
从“@angular/common/http”导入{HttpClient};
从“rxjs”导入{Subject,observeable,pipe};
从“./models/Movie.model”导入{Movie};
从“rxjs/operators”导入{map};
从“../models/TvShow.models”导入{TvShow};
@注射的({
提供于:“根”,
})
导出类搜索服务{
令牌=“xxxxxxxxxxxxxxxxxxxxxxxx”;
构造函数(私有httpClient:httpClient){}
searchMovie(标题):可观察{
返回此.httpClient
.得到(
"https://api.themoviedb.org/3/search/movie?api_key=" +
这是代币+
“&language=fr&query=”+
标题
)
.pipe(map((响应:any)=>response.results));
}

}
这是因为您正在使用http客户端进行异步调用,这意味着在您运行时

console.log(this.movies)
您的电影可能未加载。您可以将console.log移动到subscribe部分以查看结果

   this.searchService
      .searchMovie(movieSearch)
      .subscribe((res) => {
           this.movies = res;
           console.log(this.movies);
       });

发生这种情况是因为您的控制台不在订阅范围内。把它们放在你的订阅中,它应该会起作用。