Javascript undefined nach funktion?

2 Antworten

Es gibt soetwas wie einen "Scope" in Javascript und auch vielen anderen Programmiersprachen.

Wie genau das hier aussieht,w eiß ich allerdings nicht, Javascript ist da an verschiedenen Stellen etwas kompliziert.

Siehe dazu auch:

https://262.ecma-international.org/5.1/

tl;dr Am leichtesten ist es, du unterscheidest nur zwischen Local und Global scope:

https://www.w3schools.com/js/js_scope.asp

So funktioniert das auch in anderen Programmiersprachen.
Wenn es komplizierter wird, recherchierst du dann einfach zum Sonderfall.

regex9  28.02.2021, 14:24

Der Scope ist nicht das Problem, denn die Variablen (browser, page) sind in seinem Fall global deklariert. Problematisch hingegen ist die Reihenfolge der Ausführung.

2
Destranix  28.02.2021, 14:26
@regex9

Jetzt wo du es sagst. Ich frage mich echt, wo ich da heute Morgen in Gedanken war.

0

Auf das Ergebnis von init wird der Programmfluss wohl nicht warten.

Löse es so:

/* init, etc. ... */

async function scrape() {
  var retvals = await init();
  browser = retvals.second;
  page = retvals.first;
  /* etc. ... */
}

scrape();

Es wäre übrigens besserer Stil, wenn du nur mit lokalen Variablen arbeiten würdest, statt mit globalen (browser, page). Nutze die Schlüsselwörter let/const zur Deklaration.