Так что это, вероятно, дубликат или что-то в этом роде, но я пока не смог найти ничего простого и понятного, поэтому я просто спрошу.
У меня есть простой код, как показано ниже:
fetchData() {
let dataArray: Array<any> = [,,,];
this.prepareDataRequest()
.subscribe(data => {
this.dataArray[0] = JSON.parse(JSON.stringify(data["results"]));
this.dataArray[1] = Object.keys(JSON.parse(JSON.stringify(data["results"]))).length;
console.log(this.dataArray[0]);
},
err => {
this.dataArray[2] = `Error --> Status: ${err.status}, Message: ${err.statusText}`;
});
return this.dataArray;
}
prepareDataRequest() {
const dataUrl = 'https://randomuser.me/api/?results=10&inc=gender,name,nat,email,phone,id';
return this.http.get(dataUrl);
}
console.log(this.dataArray[0]);
работает отлично, но возврат пустой. До сих пор я понял, что это потому, что он выполняет return this.dataArray;
до того, как получит элементы.
Но как мне это исправить? Есть ли простой способ сказать «подождите, пока все будет сохранено, прежде чем вернуться»? Или я делаю это совершенно неправильно (вероятно, xD)?
Я пробовал кое-что с asyn c и прочим, но я новичок в этом, так что go не все хорошо.