Size: a a a

Angular - русскоговорящее сообщество

2020 April 26

AS

Anton Shvets in Angular - русскоговорящее сообщество
зачем тестить mat-table?
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
Пытаюсь сделать  download файла с помощью httpClient.
Выглядит примерно так
this.http.get(url, {responseType: 'blob' }) .subscribe(псевдокод для сохранения blob).

Проблема в том что файл большой и занимает некоторое время, чтобы скачать этот файл (download сразу происходит в память браузера- вкладка network) а потом когда файл полностью скачан выполнение переходит в subscribe.
Что я хочу сделать: чтобы сохранение сразу происходило в файловую систему (как если использовать  Window. open(url) - без промежуточеого сохранения в браузере).
Но Window.open не могу использовать так как необходимо посылать header Authirization.

Получилось это сделать с помощью fetch так как fetch использует  streamable body, но это меня не устраивает так как fetch работает вне ангуляра и интерсепторов (а наше приложение является дочерним для другого приложение которое может применять свои интерсепторы и нужно чтобы этот запрос проходил через эти интерсепторы)

Теперь вопрос: как это сделать?) и может кто-то знает есть ли в httpClient streamable body как в fetch?
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Алёна Костевич
Пытаюсь сделать  download файла с помощью httpClient.
Выглядит примерно так
this.http.get(url, {responseType: 'blob' }) .subscribe(псевдокод для сохранения blob).

Проблема в том что файл большой и занимает некоторое время, чтобы скачать этот файл (download сразу происходит в память браузера- вкладка network) а потом когда файл полностью скачан выполнение переходит в subscribe.
Что я хочу сделать: чтобы сохранение сразу происходило в файловую систему (как если использовать  Window. open(url) - без промежуточеого сохранения в браузере).
Но Window.open не могу использовать так как необходимо посылать header Authirization.

Получилось это сделать с помощью fetch так как fetch использует  streamable body, но это меня не устраивает так как fetch работает вне ангуляра и интерсепторов (а наше приложение является дочерним для другого приложение которое может применять свои интерсепторы и нужно чтобы этот запрос проходил через эти интерсепторы)

Теперь вопрос: как это сделать?) и может кто-то знает есть ли в httpClient streamable body как в fetch?
а observe: "events" пробовали?
источник

VL

Vitaly Lipko in Angular - русскоговорящее сообщество
Алёна Костевич
Пытаюсь сделать  download файла с помощью httpClient.
Выглядит примерно так
this.http.get(url, {responseType: 'blob' }) .subscribe(псевдокод для сохранения blob).

Проблема в том что файл большой и занимает некоторое время, чтобы скачать этот файл (download сразу происходит в память браузера- вкладка network) а потом когда файл полностью скачан выполнение переходит в subscribe.
Что я хочу сделать: чтобы сохранение сразу происходило в файловую систему (как если использовать  Window. open(url) - без промежуточеого сохранения в браузере).
Но Window.open не могу использовать так как необходимо посылать header Authirization.

Получилось это сделать с помощью fetch так как fetch использует  streamable body, но это меня не устраивает так как fetch работает вне ангуляра и интерсепторов (а наше приложение является дочерним для другого приложение которое может применять свои интерсепторы и нужно чтобы этот запрос проходил через эти интерсепторы)

Теперь вопрос: как это сделать?) и может кто-то знает есть ли в httpClient streamable body как в fetch?
https://www.npmjs.com/package/file-saver/v/1.3.2 вот хорошая штука для скачивания. Вызвать saveAs и передать туда blob.
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
@xuxicheta, Да пробовала, тогда возвращаются чисто цифры: сколько скачано, сколько всего размер файла.. Я это могу использовать только для прогрессбара..
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
@mr_vitalya, я использовала this. Http.get(url,{responseType :'blob'}). Subscribe(saveAs())

И флоу тот же, сразу идёт долгое скачивание в память браузера и потом только когда скачивание закончено, переходит в сабскрайб и вызывает  saveAs, т.е.  проблема не решается или этот
saveAs нужно использовать не в subscribe?

Что мне помогло это streamSaver, но я не смогла его использовать с angular http, только с fetch, но мне нужно с angular http обязательно делать запрос...
источник

VL

Vitaly Lipko in Angular - русскоговорящее сообщество
Алёна Костевич
@mr_vitalya, я использовала this. Http.get(url,{responseType :'blob'}). Subscribe(saveAs())

И флоу тот же, сразу идёт долгое скачивание в память браузера и потом только когда скачивание закончено, переходит в сабскрайб и вызывает  saveAs, т.е.  проблема не решается или этот
saveAs нужно использовать не в subscribe?

Что мне помогло это streamSaver, но я не смогла его использовать с angular http, только с fetch, но мне нужно с angular http обязательно делать запрос...
видимо не то...
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Алёна Костевич
Пытаюсь сделать  download файла с помощью httpClient.
Выглядит примерно так
this.http.get(url, {responseType: 'blob' }) .subscribe(псевдокод для сохранения blob).

Проблема в том что файл большой и занимает некоторое время, чтобы скачать этот файл (download сразу происходит в память браузера- вкладка network) а потом когда файл полностью скачан выполнение переходит в subscribe.
Что я хочу сделать: чтобы сохранение сразу происходило в файловую систему (как если использовать  Window. open(url) - без промежуточеого сохранения в браузере).
Но Window.open не могу использовать так как необходимо посылать header Authirization.

Получилось это сделать с помощью fetch так как fetch использует  streamable body, но это меня не устраивает так как fetch работает вне ангуляра и интерсепторов (а наше приложение является дочерним для другого приложение которое может применять свои интерсепторы и нужно чтобы этот запрос проходил через эти интерсепторы)

Теперь вопрос: как это сделать?) и может кто-то знает есть ли в httpClient streamable body как в fetch?
Я вас правильно понял, вы вместо юзера сразу решаете закинуть блоб в файловую систему?
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
@andriisiuta да, мне нужно поведение как при Window.open или <a download>
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Алёна Костевич
@andriisiuta да, мне нужно поведение как при Window.open или <a download>
Вопрос следущий, юзер в апликейшине уже сидит, вы говорите что можете кидать уже запрос на довнлоад. Куда делся токен?
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Потому-что пока-что ваша проблема это положить токен
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
@andriisiuta Не понимаю вопрос, мне нужно отправить header Authorization, если делать запрос то я могу его указать, а если делать Window. Open то как я его укажу? Я не знаю☹️
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Алёна Костевич
@andriisiuta Не понимаю вопрос, мне нужно отправить header Authorization, если делать запрос то я могу его указать, а если делать Window. Open то как я его укажу? Я не знаю☹️
*  
You can request a URL that triggers a server side program which makes the request with arbitrary headers and then returns the response
* You can run JavaScript (probably saying goodbye to Progressive Enhancement) that uses XHR to make the request with arbitrary headers (assuming the URL fits within the Same Origin Policy) and then process the result in JS.
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
2 ответа
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Думаю вы их видели
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Второй это з сабскрайбом
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Даже к Window.Open
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Это первый вариант
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Когда вы через параметры передаете
источник

АК

Алёна Костевич... in Angular - русскоговорящее сообщество
Это valnurability передавать Authorization хедер через параметры
источник