Объект против var [JavaScript] - PullRequest
0 голосов
/ 23 мая 2019

У меня проблема с пониманием того, как ссылаться на объект, который я получаю, выбирая API. Имея

var data [{"id": "7150", "employee_name": "Julia", "employee_salary" = "39999"}]

в файле JS, я могу легко обратиться к переменной и, например, отсортировать ее (data.sort ((a, b))

Но .. Что если у меня есть код

return fetch (url).then (function (resp) {
         return resp.json ()
}
.then (data => {
     data.forEach (result => {
        ....
        })
   })

Являются ли данные невидимыми вне «тогда»? Как я могу сослаться на мои данные API за пределами «тогда»?

1 Ответ

0 голосов
/ 23 мая 2019

Ваши данные загружаются асинхронно.Часто в сложных приложениях данные будут храниться в каком-то «ведре».Это может быть сервис или хранилище данных.Для этого есть много библиотек, это зависит от используемой платформы.

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

window.globalDataBucket = {};


return fetch (url).then (function (resp) {
         return resp.json ()
}
.then (data => {
     data.forEach (result => {
          globalDataBucket.fetchResult = result;
          // Now you can use the data in window.globalDataBucket.fetchResult anywhere.
        })
   })

Имея это в наличии, вы можете получить доступ к своим данным из любого места в приложении, поскольку теперь оно имеет глобальную область действия.Однако вам нужно добавить проверки или опросы, которые гарантируют, что код, основанный на этих данных, будет запускаться только после загрузки данных.

...