2015-10-26 1 views
0
> var score = 6; 

> function test(callback) { 
    var score0 = 16; 
    console.log(score0); 
    function callback() { return score0; }; 
    callback(); 
    } 

> score = test() 
    16 

> score 
    undefined 

La valeur appropriée pour le score doit être défini. Que devrais-je faire?Node.js/javascript: tenter de définir la variable égale à la valeur retournée par une fonction

+1

Il vous manque une déclaration de retour dans votre _test() _ fonction. 'return callback();' fera le travail. – halfzebra

Répondre

1

Modifier la dernière ligne de test() à:

return callback(); 
+0

Merci, j'ai été tué lors d'un hackathon sur ce :) –

0

Voici une façon d'avoir un rappel retourne une valeur:

function tens(value, callback) { 
    return callback(10*value) 
} 

var n = tens(100, function(result){ return result }) 

n 
    1000 

est une autre façon ici:

function tens(value, callback) { 
    return callback(10*value) 
} 

var n = tens(150, 
    function(err, result) { 
    if (err) throw err 
    else return result 
    }) 

n 
1500 

Le problème avec la façon dont j'ai posé la question est que

function test() { 
    var score0 = 16; 
    return score0; 
} 

aurait tout aussi bien fonctionné. Et si cette syntaxe simplifiée fonctionne aussi bien, alors la fonction "callback" dans ma question d'origine n'est pas une fonction de rappel mais une fonction que j'ai appelée par coïncidence "callback"