Size: a a a

JavaScript.Ninja

2021 March 01

AA

Artur Arslanov in JavaScript.Ninja
Alex Solovyov
@xanf_ua Доброе утро, можете подсказать , задача программного взаимодействия с браузером - на сайте заполнить фильтры, нажать кнопку - программно, какими средствами решаются? не встречалось вам подобное?
Взаимодействие откуда? С браузера? Ноды? Если с ноды то Puppeteer.
источник

AS

Alex Solovyov in JavaScript.Ninja
можно ноды,  - будет микросервис. поэтому  без разницы
источник

AS

Alex Solovyov in JavaScript.Ninja
спасибо большое!!!
раньше думал что такие задачи из области чего то хакерского = очень сложные.
источник

AA

Artur Arslanov in JavaScript.Ninja
Alex Solovyov
спасибо большое!!!
раньше думал что такие задачи из области чего то хакерского = очень сложные.
Если выбрали Puppeteer, то читайте прямо доку, она у них хороша.
https://pptr.dev/
источник

AS

Alex Solovyov in JavaScript.Ninja
спасибо.. я почему и обратился в чат.. что я слышал про эту либу и забыл.. но думал что она только для питона.
не смог нагуглить ее повторно своими запросами..
большое спасибо
источник

AA

Artur Arslanov in JavaScript.Ninja
Alex Solovyov
спасибо.. я почему и обратился в чат.. что я слышал про эту либу и забыл.. но думал что она только для питона.
не смог нагуглить ее повторно своими запросами..
большое спасибо
Наверное вы слышали про Selenium.
источник

AS

Alex Solovyov in JavaScript.Ninja
да верно.
источник

MD

Maksim Dziba in JavaScript.Ninja
привет...помогите плз...
отправляю на бек запрос...
и если в ответе поле isFinished: false, то я должен  еще раз послать запрос
использую axios..
проблема в том, что в getQuotas в ветку then приходит первый запрос, а не последний с нужным результатом. Как получить в then ответ когда isFinished: true ?

export const getQuotas= (shipments) => {
 return async () => {
     try {
         const repeatRequest = setInterval( async () => {
             const quotes = await axios.get(___URL___)
             if ( quotes.result.isFinished) {
                 clearInterval(repeatRequest)
                 return quotes.result;
             }
         }, 1000)
     } catch (error) { console.log(error)}}
 }
}

getQuotas(ships)
 .then(res => {
   setState(({
     isLoading: false,
     jobs: [...res.completedJobs, ...res.failedJobs]
   }));
 })
 .catch((error) => console.log('error', error))
источник

YS

Yuri Strelets in JavaScript.Ninja
Maksim Dziba
привет...помогите плз...
отправляю на бек запрос...
и если в ответе поле isFinished: false, то я должен  еще раз послать запрос
использую axios..
проблема в том, что в getQuotas в ветку then приходит первый запрос, а не последний с нужным результатом. Как получить в then ответ когда isFinished: true ?

export const getQuotas= (shipments) => {
 return async () => {
     try {
         const repeatRequest = setInterval( async () => {
             const quotes = await axios.get(___URL___)
             if ( quotes.result.isFinished) {
                 clearInterval(repeatRequest)
                 return quotes.result;
             }
         }, 1000)
     } catch (error) { console.log(error)}}
 }
}

getQuotas(ships)
 .then(res => {
   setState(({
     isLoading: false,
     jobs: [...res.completedJobs, ...res.failedJobs]
   }));
 })
 .catch((error) => console.log('error', error))
сложно правильно подсказать не понимая полностью задачи, но как пример обернуть getQuotas внутри в промис, и в нем делать запросы пока не прилетит true и только тогда этот промис резолвить
источник

ii

iCheater iCheater in JavaScript.Ninja
все привет!
Допустим в проекте есть файлик с константами и хочется получать доступ к этому файлику из любого места проекта.
А так же хочется, чтобы в среде не ломалось автоподсказка.
Как у вас такая проблема решается?

пример как не хочется:
```const CONSTANTS = require('../../../../../../common/constants.js')```
источник

RM

Roman Mironov in JavaScript.Ninja
iCheater iCheater
все привет!
Допустим в проекте есть файлик с константами и хочется получать доступ к этому файлику из любого места проекта.
А так же хочется, чтобы в среде не ломалось автоподсказка.
Как у вас такая проблема решается?

пример как не хочется:
```const CONSTANTS = require('../../../../../../common/constants.js')```
Vue? или обычный проект
источник

ii

iCheater iCheater in JavaScript.Ninja
Roman Mironov
Vue? или обычный проект
не вью, node
источник

VK

Vladimir Klimov in JavaScript.Ninja
iCheater iCheater
все привет!
Допустим в проекте есть файлик с константами и хочется получать доступ к этому файлику из любого места проекта.
А так же хочется, чтобы в среде не ломалось автоподсказка.
Как у вас такая проблема решается?

пример как не хочется:
```const CONSTANTS = require('../../../../../../common/constants.js')```
import {constantINeed}  from  'pathToMyConstants' можно так😄
источник

RM

Roman Mironov in JavaScript.Ninja
iCheater iCheater
не вью, node
что насчет алиасов? Не пробовал?
источник

ii

iCheater iCheater in JavaScript.Ninja
юзали алиасы в вебпаке.
а без вебпака есть варианты?
источник

RM

Roman Mironov in JavaScript.Ninja
вот про это имел ввиду https://www.npmjs.com/package/module-alias
источник

RM

Roman Mironov in JavaScript.Ninja
iCheater iCheater
юзали алиасы в вебпаке.
а без вебпака есть варианты?
пока первое, что в голову пришло
источник

ii

iCheater iCheater in JavaScript.Ninja
а, кажется vscode, webstorm понимают config.js и парсят алиасы
https://stackoverflow.com/questions/54518538/how-to-use-jsconfig-path-with-webstorm
источник

IK

Illya Klymov in JavaScript.Ninja
iCheater iCheater
все привет!
Допустим в проекте есть файлик с константами и хочется получать доступ к этому файлику из любого места проекта.
А так же хочется, чтобы в среде не ломалось автоподсказка.
Как у вас такая проблема решается?

пример как не хочется:
```const CONSTANTS = require('../../../../../../common/constants.js')```
а чем не нравится честный полный путь?
источник

ii

iCheater iCheater in JavaScript.Ninja
Illya Klymov
а чем не нравится честный полный путь?
приходится часто прописывать ручками на разных уровнях
источник