Я просто не уверен, почему вы используете from
здесь. Я предполагаю, что все, что вам нужно здесь, это нажать на URL API и получить от него данные.
Если это действительно так, вы можете просто использовать метод get
для HttpClient
, который вам нужно будет ввести в качестве зависимости в вашем Компоненте.
Кроме того, чтобы использовать HttpClient
, вам необходимо добавить HttpClientModule
в массив imports
вашего модуля.
Если вы действительно следуете этому, ваш код может быть преобразован следующим образом:
constructor(private http: HttpClient ) {}
....
getData() {
this.http.get('https://reqres.in/api/users?page=1').subscribe(
response => console.log(response),
err => console.error('Error: ' + err),
() => console.log('Completed')
);
}
Если вы все еще хотите использовать from
и fetch
, вам придется сделать то, что предложил m1gu3l.
const data = from(fetch('https://reqres.in/api/users?page=1').then(res => res.json()))
.subscribe(
response => console.log(response),
err => console.error('Error: ' + err),
() => console.log('Completed')
);
Но тогда это то, что Http
делал во времена Angular 4.3 и предыдущих версий Angular, но в конечном итоге было признано устаревшим в пользу HttpClient
, где вам на самом деле не нужно вызывать метод json
чтобы получить точные данные ответа.
Вот Рабочий образец StackBlitz для вашей ссылки.