Jump to content

Node.js und callbacks


Recommended Posts

Hi

Habe mir gerade mal etwas die Node.js bindings angeschaut. Meine Frage hierzu:

Sind die Callbacks die ihr verwendet wirklich asynchron, d.h. benutzt ihr process.nextTick() um einen Callback zu rufen?

 

Beispiel:

ipcon.connect(HOST, PORT,
    function(error) {
        console.log('Error: '+error);
    }
); // Connect to brickd

 

Wird hier die error callback Funktion wirklich asynchron aufgerufen, oder im gleichen EventLoop Durchlauf wie die connect Methode selbst?

 

Nach kurzem Blick in die IPConnection "Klasse" von euch habe ich kein process.nextTick(...) gefunden. Von daher gehe ich aus daß alle Callbacks die ihr aufruft nicht wirklich asynchron sind.

 

Ist das korrekt?

Link to comment
Share on other sites

Die Callbacks sind asynchron, wir verwenden dafür aber nicht process.nextTick(), denn wir verwendet die Callbacks der Socket Klasse.

 

IPConnection.connect() erzeugt einen Socket, registriert zwei Funktionen für das Error und Connect Event und ruft dann Socket.connect() auf. Danach ist IPConnection.connect() durch und returned. Später ruft dann die Socket Klasse entweder die registrierte Error oder Connect Funktion auf vorauf hin die IPConnection entweder deine Error Funktion oder den Connected Callback aufruft.

 

Alle Callbacks der Node.JS Bindings sind in dieser Weise an I/O Operationen gebunden. Alle I/O Operationen in Node.JS sind asynchron und die IPConnection nutzt das einfach. Wir brauchen kein process.nextTick() um asynchron Callbacks zu haben.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...