wucher wichtel: Wie das Ergebnis von Request zurückgeben?

Beitrag lesen

Hallo!

Funktionsreferenz

Das Wort habe ich gesucht.

function bar(){ // macht den Request und ruft baz() auf

Wer genau ruft jetzt request.open() auf, foo() oder bar()?

foo() ruft bar() auf. Und bar() führt den Request aus :-)

return baz('test'); //[1] wie soll ich dieses return schreiben?

Gar nicht. Ein return bringt Dir nichts. Im Falle des Events "Response ist da" wird diejenige Funktion gestartet, die mit dem Response arbeiten soll.

Ok, dann war mein kompletter Ansatz falsch.

Wie kann ich den responseText, ausgelöst durch onreadystatechange, an die erste Funktion (foo()) schicken?

Die Syntax dazu lautet "foo(responseText)" :-)

Hehe... Ok ;-)

Vielen Dank für deine Hilfe! Ich werde später antworten, da ich jetzt ins Training muss. Danke!

Wünsche wohl trainiert zu haben!

Danke :)

Also, ich habe jetzt die meisten Probleme nun gelöst. Allerdings habe ich noch eines. Und zwar soll die Funktion, die den Request abschickt, wiederverwendbar sein. Also ich möchte bei 20 verschiedenen Aufgaben (pro Aufgabe eine Funktion, die die Request-Funktion aufruft), jeweils ein anderes Ergebnis, an eine andere Funktion, zurückgeliefert bekommen. Wie kann ich das flexibel machen?

So sieht das Script aus:

foo() - Es kann viele ähnliche Funktionen geben, die dann immer request() aufrufen. Also es kann foo1(), foo2(), fooxy() geben. Alle sollen die Funktion request mit einigen Parametern aufrufen und dann das Ergebnis zurückbekommen, das der Server liefert.

request() - führt den Request aus, und ruft die Funktion checkResponse(), mit dem Parameter textResponse auf

checkResponse() - Überprüft readyState und status. Wenn alles gut ist, dann wird textResponse zurückgegeben.

Also wenn foo1() request() aufruft, dann soll das Ergebnis auch an foo1() zurückgeliefert werden. Wenn fooxy() request aufruft, dann soll das Ergebnis auch an fooxy() zurückgeliefert werden.

Ich hoffe, dass nun klar ist, was ich meine. Gibt es andere, bessere Möglichkeiten oder wie kann ich mein Problem lösen? Soll ich (mehr) Code zeigen? Ist irgendetwas unklar?

Danke schön schonmal für deine/eure Hilfe :)

ciao, ww

--
Schäuble:
  "Wir können alles. Außer Rechtsstaat."