Przekazanie argumentu do ewaluowanej funkcji

0

Cześć,

dotychczas myślałem że wiem jak działa scope w JS. Podczas pracy nad projektem okazało się że nie do końca. Ten programik zwraca tłumaczenia dla trzech słów:

https://github.com/adams00/Link_backend/blob/master/diki_sucker.js

Niestety gdy zamiast XXX wstawię zmienną word to zwraca mi błąd. Z tego co się orientuje to zmienna word powinna być dostępna.

Czy wiecie dla czego tak jest?

0
adams0 napisał(a):

Ten programik zwraca tłumaczenia dla trzech słów:

https://github.com/adams00/Link_backend/blob/master/diki_sucker.js

Niestety gdy zamiast XXX wstawię zmienną word to zwraca mi błąd.

Jaki błąd?

Bo to nie wygląda jakby to był problem ze scope.

0
Error: Evaluation failed: ReferenceError: word is not defined
    at pptr://__puppeteer_evaluation_script__:3:21
    at Array.map (<anonymous>)
    ...
0
adams0 napisał(a):
Error: Evaluation failed: ReferenceError: word is not defined
    at pptr://__puppeteer_evaluation_script__:3:21
    at Array.map (<anonymous>)
    ...

Pokaż kod cały jaki masz w momencie w którym ten błąd leci.

Rozumiem że bazuje na tym linku który podesłałeś; ale pokaż swój kod jaki uruchamiasz tak czy tak.

2

Musisz przekazać zmienną word w podobny sposób jak przekazałeś resultsSelector.

const translations = await page.evaluate(({ resultsSelector, word }) => {
  // ...
}, { resultsSelector, word });
adams0 napisał(a):
Error: Evaluation failed: ReferenceError: word is not defined
    at pptr://__puppeteer_evaluation_script__:3:21
    at Array.map (<anonymous>)
    ...

Błąd jest pewnie związany z tym, że ta funkcja nie zostanie wywołana jako zwykły skrypt node.js tylko puppeteer wstrzykuje ją do obecnie scrapowanej strony, czyli do tego await page.goto("https://www.diki.pl/slownik-angielskiego?q=${word}").

1 użytkowników online, w tym zalogowanych: 0, gości: 1