Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

21.02.2016, 12:16

Hey,
das scheint schon in die richtige Richtung zu gehen.

Allerdings möchte ich nicht erstmal sammeln, sondern die Informationen die ich aus dem Lookup bekomme zurück geben, da eine übergeordnete Funktion die Informationen sammelt und bearbeitet.

bei allen Versuchen irgendwie ein return einzubauen bin ich gescheitert. Vermutlich da ich noch nicht ganz hinter die Sache mit den Promise gekommen bin.

kannst du mir helfen?

Mfg Urprimat
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Linus Torvalds

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

12

21.02.2016, 14:59

Wenn ich es richtig verstanden habe, willst du etwas in dieser Richtung haben:

Quellcode

1
2
3
4
5
6
7
8
9
10
function myFunction() {
    var myValues = []
    function myCallback() {
        // do stuff with myValues
    }
    
    asyncStuff().then(myCallback);
    
    return myValues;
}


DAs return der äußeren Funktion wird bereits vor dem Aufruf von myCallback durchgeführt. Das liegt daran, weil der Aufruf (mit Callbackübergabe) zwar bereits ausgeführt wurde, allerdings stößt es einen asynchron im Hintergrund laufenden Prozess an, der asynchron abgearbeitet wird. Das übergebene Callback wird dadurch erst viel zu spät aufgerufen und es lässt sich nicht mit einem Return bewerkstelligen.
Stattdessen könntest du entweder einen Parameter entgegen nehmen, über den wiederum ein Callback übergeben werden kann, dem das Ergebnis übergeben wird, oder du könntest selbst ein Promise oder etwas vergleichbares zurückliefern, dem dann die Callbacks angehangen werden können. (Da der Aufruf der Asynchronen Methode bereits ein Promise liefert, könntest du vielleicht sogar diesen verwenden.) Was du letztendlich machst ist im wesentlichen Geschmackssache.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].