Size: a a a

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

2020 February 26

S

Smooth Operator in Angular - русскоговорящее сообщество
у тебя валидация то асинхронная как не крути
источник

В

Виталий in Angular - русскоговорящее сообщество
Smooth Operator
ну наверное надо подписаться на изменение статуса валидации и там вызывать снакбары свои
Думал об этом, но не красиво как-то...
источник

PP

Pika Poka in Angular - русскоговорящее сообщество
Всем привет. Подскажите, когда мы пробрасываем объект в чаилд компоненты он ссылочный?
источник

PP

Pika Poka in Angular - русскоговорящее сообщество
или создается новый экземпляр
источник

R

Ruslan in Angular - русскоговорящее сообщество
Smooth Operator
concat(items.filter(...).map(item => this.service.getPrice(item, job)).pipe(toArray())
что-то может не правильно я понял, консол лог то что в pipe не отрабатывает
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Pika Poka
или создается новый экземпляр
Ссылочный
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Ruslan
что-то может не правильно я понял, консол лог то что в pipe не отрабатывает
Может фильтр не пускает
источник

R

Ruslan in Angular - русскоговорящее сообщество
Oleg Safonov
Может фильтр не пускает
нет, пускает
источник

v

v.a. in Angular - русскоговорящее сообщество
Ruslan
что-то может не правильно я понял, консол лог то что в pipe не отрабатывает
мне кажется не хватает подписки на observable внутри map. может тут switchMap нужен или что-то подобное?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Ruslan
что-то может не правильно я понял, консол лог то что в pipe не отрабатывает
вы конкат из 'rxjs' импортируете?
источник

v

v.a. in Angular - русскоговорящее сообщество
собственно poduct в главной подписке - это то что ты из сервиса внутри map хочешь достать?
источник

v

v.a. in Angular - русскоговорящее сообщество
v.a.
мне кажется не хватает подписки на observable внутри map. может тут switchMap нужен или что-то подобное?
блин, тут map совсем другая история... ) ну вроде все равно дело в подписке внутри этого map
источник

R

Ruslan in Angular - русскоговорящее сообщество
Smooth Operator
вы конкат из 'rxjs' импортируете?
из операторов, сейчас попробую из rxjs
источник

R

Ruslan in Angular - русскоговорящее сообщество
Smooth Operator
вы конкат из 'rxjs' импортируете?
теперь ide ругается
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Ruslan
теперь ide ругается
с каждым шагом мы все больше кода видим в скриншотах)
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
предлагаю тебе сделать пример на stackblitz и там уж будем разбираться
источник

R

Ruslan in Angular - русскоговорящее сообщество
Smooth Operator
предлагаю тебе сделать пример на stackblitz и там уж будем разбираться
как можно сюда вставить код?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
три ` до и после
источник

R

Ruslan in Angular - русскоговорящее сообщество
Smooth Operator
три ` до и после
init(job) {
       this.getItems()
           .pipe(
               tap(() => job.stop()),
               pluck("data"),
               map((items: Product[]) => items.filter(item => item["watch"] == true && !!item["market_url"])),
               tap(console.log),
               concat(items => items
                   .filter(item => !!item["watch"])
                   .map(item => this.seleniumService.getPrice(item, job)).pipe(toArray())
               )
           ).subscribe((products: Product[]) => {
           products
               .filter(item => !!item)
               .map(product => {
                   console.log('prod: ', product);

                   let price = this.priceCheckerService.checkPrice(product.price_step, +product.variants[0].price, +product.secPrice, +product.min_price);
                   if (price.needUpdate && product.secondPositionShop != this.storeId) {
                       this.updatePrice(product, price.newPrice);
                   }

               });
           job.start()
       });
   }


seleniumService
async getPrice(item, job) {
       // const options = new Options().addArguments('-profile', '/home/seluser/.mozilla/firefox/31970d0t.zukazuka2');
       const driver = await new Builder()
           .forBrowser("firefox")
           .usingServer('http://localhost:4444/wd/hub')
           // .setFirefoxOptions(options)
           .build();
       try {
           await driver.get(item["market_url"]);
           const element = await driver.findElements(
               By.css(".n-snippet-list .snippet-card")
           );
           if (element.length) {
               await driver.wait(until.elementIsVisible(element[1]), 500);
               const data = await element[1].getAttribute("data-bem");
               await driver.quit();
               item["secPrice"] = JSON.parse(data)["shop-history"]["clickParams"]["price"];
               item["secondPositionShop"]= JSON.parse(data)["shop-history"]["clickParams"]["store"];
               return item;
           }
       } catch (e) {
           this.logger.alert(e);
           job.start()
       } finally {
           // await driver.quit();
       }
   }
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
не те кавычки
источник