2016-05-05 4 views
0

aufrufen Ich lerne Javascript Callback oder Funktionen höherer Ordnung. Bitte helfen Sie mir den Fehler in den folgenden Funktionen zu verstehen. Ich versuche mehr als Callback-Funktionen aufzurufen. Ist es nicht erlaubt?Ist es möglich, mehr als eine Funktion in einer JavaScript-Funktion Parameterliste

Mein Code ist:

var firstFunction = function(item1){ 
    console.log("calling firstFunction"); 
    console.log(item1); 
} 
var secondFunction = function(item2, f1){ 
    console.log("calling secondFunction"); 
    f1(item2); 
} 
//secondFunction("first", firstFunction); 

var thirdFunction = function(item3, f2,f1){ 
    console.log("calling thirdFunction"); 
    f2(item3); 
} 

thirdFunction("second", firstFunction, secondFunction); 
+1

was ist Ihre erwartete Ergebnis? –

+0

Mögliches Duplikat von [Sind Versprechen nicht nur Rückrufe?] (Http://stackoverflow.com/questions/22539815/arent-promises-just-callbacks) –

Antwort

0

Was Sie richtig getan ist, aber Sie haben f1 als Aufruf in zurück dritte Funktion zu übergeben

var thirdFunction = function(item3, f2,f1){ 
    console.log("calling thirdFunction"); 
    f2(item3, f1); 
} 
0

Der Code ist in Ordnung, es gibt keine Einschränkungen wie für Callback-Tiefe, aber von stack overflow errors.

in Ihrem Code vergeben werden, führen Sie FirstFunction innerhalb der dritten aus, nachdem das Script stoppt. Ich nehme an denken, dass Sie second innerhalb des thirdFunction und dann erst in der zweiten ausführen wollte:

function firstFunction (item){ 
    console.log("calling firstFunction"); 
    console.log(item); 
} 

function secondFunction (item, f1){ 
    console.log("calling secondFunction"); 
    f1(item); 
} 

function thirdFunction (item, f1,f2){ 
    console.log("calling thirdFunction"); 
    f2(item,f1); 
} 

thirdFunction("second", firstFunction, secondFunction); 

dass Code in beschriebener Weise funktionieren würde.

0

haben Sie einen Blick auf dieses Skript

var firstFunction = function(item1, f2) { 
 
    document.body.innerHTML += item1 + " | This is firstFunction <br/> "; 
 
    //console.log("calling firstFunction"); 
 
    f2(item1, secondFunction); 
 
} 
 
var secondFunction = function(item2, f1) { 
 
    document.body.innerHTML += item2 + " | This is secondFunction <br/> "; 
 

 

 
} 
 

 

 
var thirdFunction = function(item3, f1, f2) { 
 
    document.body.innerHTML += item3 + " | This is thirdFunction <br/> "; 
 
    f1(item3, f2); 
 

 
} 
 

 
thirdFunction("chain started third function", firstFunction, secondFunction);
<html> 
 

 
<body></body> 
 

 
</html>

Verwandte Themen