169 похожих чатов

This.Http.Get<Photo[]>(...) возвращает Observable<Photo[]>,но использовать в *ngFor я могу только Photo[] какой

выход кроме subscribe() и присвоения в нем переменной типа Photo[] данных получаемых от сервера?

30 ответов

16 просмотров

async pipe

*ngFor="let item of (items$ | async)"

Stanislav
*ngFor="let item of (items$ | async)"

а что такое items? где они возьмутся без подписки на обсервбл?

Oleksandr 🤖
а что такое items? где они возьмутся без подписки ...

я привел пример как Observable<Array<T>> вывести через ngFor, я не собираюсь весь код писать

Stanislav
я привел пример как Observable<Array<T>> вывести ч...

понял, мне этого достаточно. Я просто так не выводил никогда. Я не в том смысле, чтобы показать. Просто было инересно как это

Захар- Автор вопроса
Stanislav
*ngFor="let item of (items$ | async)"

спасибо, а как сравнить два Observable на то, что значения в них одинаковы?

Захар- Автор вопроса
Andrei
Но ...они же асинхронны

дождаться пока придет ответ и сравнить?

Захар
дождаться пока придет ответ и сравнить?

Ты можешь их сравнить только в тик

Захар
спасибо, а как сравнить два Observable на то, что ...

Короче, объединить в один поток(merge/scan ..., combineLatest...) и сравнивать

Захар- Автор вопроса
Andrei
Ты можешь их сравнить только в тик

ну у меня при нажатии на элемент идет запрос на сервер, если еще раз нажать, то впустую будет переприсвоен Observable, следовательно теги img заново будут выкачивать фото, а я не хочу такого

Захар
ну у меня при нажатии на элемент идет запрос на се...

Как это реализовать в рамках вашей задачи не подскажу, а концепт описал выше

Захар
ну у меня при нажатии на элемент идет запрос на се...

вы можете сравнить массивы (deep equality) перед тем как обновлять свойство компонента, хотя ангуляр возможно и сам достаточно умный чтобы лишний ререндер не делать, тут надо в сторону trackBy копать

Захар- Автор вопроса
Stanislav
вы можете сравнить массивы (deep equality) перед т...

deepEqual не помог, все равно думает что Observable разные

Захар
ну у меня при нажатии на элемент идет запрос на се...

а если сработало нажатие, можно отключить возможность следующего нажатия, если данные в процессе получения, или если результат получен

Andrei
А чего им быть одинаковыми

У вас на момент сравнения ньюФотос постоянно пустой.

Захар- Автор вопроса
Иван
а если сработало нажатие, можно отключить возможно...

не, тут именно чтоб не присваивало заново, если по факту содержимое не поменялось

Захар- Автор вопроса
Захар- Автор вопроса
Stanislav
так вам value сравнивать надо

ну как я понимаю через zip() но не совсем понял как работает этот зип я ожидаю что подаю на вход 2 observable и лямбду, в которой пишу логику

Захар
ну как я понимаю через zip() но не совсем понял ка...

грубо 1) 1 или 2 - на выбор 2) заверните в сабжект scan или pairwise и обойдетесь без локального свойства 3) при использовании варианта 2 (map), просто чтоб не дергать CD - не нужен scan или pairwise

Andrei
screenshot грубо 1) 1 или 2 - на выбор 2) заверните в сабжек...

с пунктом 3 соврал - нужен будет скан

Andrei
screenshot грубо 1) 1 или 2 - на выбор 2) заверните в сабжек...

при 2 и 3 также избавитесь от "прямой" подписки

Захар- Автор вопроса
Andrei
при 2 и 3 также избавитесь от "прямой" подписки

это пока все сложно для меня, все эти реактивности по сути то и не нужны я то хотел получить с сервера массив ссылок, эти ссылки подставить в src по нажатию, если после этого еще раз нажать, то запрашивается с сервера опять массив ссылок, если он идентичный с первым, то присваивать не надо, а если отличаются, то перезагрузить фотки тк src поменялся

Захар
это пока все сложно для меня, все эти реактивности...

Вы не можете сесть за руль, не зная как открывается машина

Захар- Автор вопроса
Andrei
Вы не можете сесть за руль, не зная как открываетс...

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

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта