Доступ к коду развернутого приложения углового 2 с использованием firebase [duplicate]

Js - однопоточная.

Браузер можно разделить на три части:

1) Event Loop

2 ) Web API

3) Очередь событий

Событие Loop запускается вечно, т. Е. Тип бесконечного цикла. Очередь ожидания - это то, где вся ваша функция нажимается на какое-либо событие (пример: нажмите) this один за другим выполняется в очереди и помещается в цикл «Событие», который выполняет эту функцию и подготавливает ее для следующего после первого запуска. Это означает, что выполнение одной функции не начинается до тех пор, пока функция, перед которой она в очереди не будет выполнена цикл событий.

Теперь давайте подумаем, что мы поставили две функции в очереди, чтобы получить данные с сервера, а другой использует эти данные. Мы сначала нажали функцию serverRequest () в очереди, а затем применили функцию Data () , Функция serverRequest переходит в цикл событий и делает вызов на сервер, так как мы никогда не знаем, сколько времени потребуется для получения данных с сервера, поэтому ожидается, что этот процесс займет много времени, и поэтому мы заняли наш цикл событий, тем самым повесив нашу страницу, вот где Web API входит в эту роль, он принимает эту функцию из цикла событий и обращается к серверу, создающему цикл событий, так что мы можем выполнить следующую функцию из очереди. Следующая функция в очереди - useData (), которая идет в цикле, но из-за отсутствия данных отходы и выполнение следующей функции продолжаются до конца очереди (это называется Async-вызовом, то есть мы можем сделать что-то еще, пока не получим данные)

Предположим, что наша функция serverRequest () имела оператор возврата в код, когда мы возвращаем данные с сервера Web API, будет выталкивать его в очередь в конце очереди. По мере того, как он заканчивается в очереди, мы не можем использовать его данные, поскольку в нашей очереди нет функции, чтобы использовать эти данные. Таким образом, невозможно вернуть что-то из Async Call.

Таким образом, решение этой проблемы callback или обещают .

A Изображение из одного из ответов здесь, правильно объясняет использование обратного вызова ... Мы (функция, использующая данные, возвращаемые с сервера), чтобы вызвать вызывающий сервер.

 function doAjax(callbackFunc, method, url) {
  var xmlHttpReq = new XMLHttpRequest();
  xmlHttpReq.open(method, url);
  xmlHttpReq.onreadystatechange = function() {

      if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
        callbackFunc(xmlHttpReq.responseText);
      }


  }
  xmlHttpReq.send(null);

}

В моем коде он называется

function loadMyJson(categoryValue){
  if(categoryValue==="veg")
  doAjax(print,"GET","http://localhost:3004/vegetables");
  else if(categoryValue==="fruits")
  doAjax(print,"GET","http://localhost:3004/fruits");
  else 
  console.log("Data not found");
}

Прочитайте здесь новые методы в ECMA (2016/17) для создания асинхронного вызова (@Felix Kling Answer сверху) https://stackoverflow.com/a/14220323/7579856

22
задан Frank van Puffelen 9 October 2014 в 22:14
поделиться

2 ответа

Нет способа получить доступ к вашему Firebase-коду. Вы должны использовать свой собственный контроль версий (например, git), чтобы управлять своими ревизиями и резервными копиями.

Поскольку все ваши файлы являются статическими активами, вы всегда можете их очистить с помощью wget:

wget -r -np https://<YOURAPPNAME>.firebaseapp.com

Подробнее об очистке веб-сайтов здесь: https://apple.stackexchange.com/questions/100570/getting-files-all-at-once-from-a-web-page-using-curl

31
ответ дан Community 23 August 2018 в 22:56
поделиться

Возможно, этот ответ не совсем соответствует запрошенному направлению, но для того, чтобы перечислить файлы, которые вы загружаете, во время разворачивания используйте переключатель --debug:

firebase deploy --debug

С помощью этой опции вы будете см. запрос POST. Что-то вроде этого:

>>> HTTP REQUEST POST https://deploy.firebase.com/firebase/yourapp/releases?token=XXX public=dist, version=-KE5UDaj7oCppckjEBaE, prefix=-KE5UDaj7oCppckjEBaE/, manifest=[path=404.html, object=404.html, path=scripts\main\main.html, object=scripts\main\main.html, path=scripts\scripts.d6106dbd.js, object=scripts\scripts.d6106dbd.js, path=scripts\vendor.68cdc83b.js, object=scripts\vendor.68cdc83b.js, path=styles\main.5b335e2d.css, object=styles\main.5b335e2d.css, path=styles\vendor.d41d8cd9.css, object=styles\vendor.d41d8cd9.css], rules=undefined <<< HTTP RESPONSE 200 server=nginx, date=Wed, 30 Mar 2016 07:46:31 GMT, content-type=application/json; charset=utf-8, content-length=34, connection=close, access-control-allow-origin=*, access-control-allow-methods=GET, PUT, POST, DELETE, OPTIONS, strict-transport-security=max-age=31556926; includeSubDomains; preload, x-content-type-options=nosniff

Это может помочь проследить, что ралли загружено на хостинг firebase.

Но я согласен с тем, что отсутствие возможности для простого список файлов на хостинге firebase не рекомендуется использовать эту услугу.

3
ответ дан Przemek Nowak 23 August 2018 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: