const userfetched =[];
fetch('https://jsonplaceholder.typicode.com/users').then(response=> response.json()).then(user=>userfetched.push(user));
console.info(userfetched)
здесь он выводит пустой массив.
но если я использую следующий код:
const userfetched =[];
fetch('https://jsonplaceholder.typicode.com/users').then(response=> response.json()).then(user=>console.info(user));
console.info('end')
он выводит конец затем значения массива.
Как мне дождаться заполнения ответа выборки и перебрать его?
Как мне это исправить, извините, я новичок в js .. и не знаю, как это исправить. Просто пытаюсь учиться
ну, если вы хотите синхронизироваться с обещанием, тогда вам нужно будет console.info внутри второго. вот где решается обещание
Отправленные ответы работают, но не могут быть экспортированы. Я использовал переменную состояния для привязки данных к рендерингу. Спасибо всем



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто поместите console.info(userfetched) после того, как fetch prom выполняет разрешение и проанализирует json:
fetch('https://jsonplaceholder.typicode.com/users')
.then(response => response.json())
.then(user => {
console.info(user)
// and do whatever you wanna do here
});
Это потому, что на него еще нет ответа. После того, как обещание выборки разрешено (сервер ответил) и он проанализирован на json, console.info может выполняться.
Ах, мне нужно экспортировать после нажатия этих значений
взгляните на это
Вызовите функцию callApi после завершения featch и отправьте ответ в массив и консольируйте результат.
его рабочий асинхронный переход на синхронизацию
const userfetched = [];
class App extends Component {
async callApi() {
var res = await fetch('https://jsonplaceholder.typicode.com/users')
var result = await res.json()
console.info(JSON.stringify(result))
}
componentDidMount() {
this.callApi()
}
render{
return( //do something.... )
}
}
были ошибки компиляции, исправил и запустил .. все еще не работает. получил пустой массив
вы используете какую-либо функцию для вызова выборки?
нет, все, что я дал в вопросе, является фактическим кодом, я использую
вы можете написать выборку внутри функции и вызвать это имя функции, где бы вы ни хотели this.callApi ()
и используя async await для этой функции
снова та же проблема :(
попробовал это: const getdata = async () => {const data = await fetch ('jsonplaceholder.typicode.com/users '); const result = ждать data.json (); console.info (JSON.stringify (результат)); }; получить данные(); console.info ('конец');
где вы вызывали функцию getdata внутри класса или вне класса?
Класса нет. Это просто файл с одной функцией, которую вы порекомендовали, и я вызвал в этом файле
вы можете поместить код в консоль браузера const getdata1 = async () => {const data = await fetch ("jsonplaceholder.typicode.com/users "); const result = await data.json (); console.info (JSON.stringify (result)); }; getdata1 ()
Позвольте нам продолжить обсуждение в чате.
работает при печати. Но не могу экспортировать ... Я изменил код, чтобы использовать переменную состояния, так что пока он работает
выполнение кода за пределами then продолжается, внутри затем выполняется, когда обещание возвращается (асинхронно). вот почему у вас эта проблема