Как я могу использовать свои данные из api и передать их в другую функцию для дальнейшей обработки

#javascript #arrays #function

Вопрос:

Какой метод существует без использования setTimeout (), чтобы разрешить сохранение данных из выборки в массиве stored_data, а затем разрешить функции тестирования манипулировать.

До сих пор я не определился.

 let stored_data = []


fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(json => stored_data.push(json))


function test(e) {
console.log(e)
}
 

Ответ №1:

Вы могли бы просто приковать другого .then . Вы также забыли объявить store_data в качестве переменной

 let stored_data = []

fetch('https://jsonplaceholder.typicode.com/todos/1')
      .then(response => response.json())
      .then(json => stored_data.push(json))
      .then( _ => {
          // array now ready for manipulation
      })
 

Комментарии:

1. спасибо за ответ, но я хочу получить доступ к stored_data вне функции.

2. Проблема в том, что ты не можешь. Либо вы соединяете его цепочкой .then , либо заключаете в асинхронную функцию и ждете извлечения. Это ваши два варианта.

3. о, хорошо, спасибо, я понимаю, поэтому, если бы я хотел, чтобы другая функция использовала идентификатор stored_data, мне пришлось бы вызывать асинхронную функцию с a . затем внутри новой функции, которая хочет использовать stored_data.

4. Нет. Единственная причина, по которой вам нужно цепляться .then за выборку, заключается в том, что сама выборка асинхронна. Вы должны гарантировать , что к моменту вашего доступа stored_data выборка уже разрешена, поэтому вы можете сделать это, обратившись только stored_data к тому, когда выборка разрешена, что можно сделать с .then помощью .