Je développe cette application simple qui suppose d'exécuter une fonction à la fois. Ce code est écrit en javascript à l'aide de nodejs.
Mon objectif est de faire en sorte que la première fonction affiche la sortie en premier, puis seule la fonction deux affichera la sortie mais ces deux fonctions doivent être exécutées avec une seule grande fonction.
Voici mes codes. p>
function combine(Human,Alien)
{
function one (Human)
{
TotalOne = Human + 5;
console.log(`The Number Of Human : ${TotalOne}`);
return TotalOne;
}
function two (Alien)
{
TotalTwo = Alien + 10;
console.log(`The Number Of Alien : ${TotalTwo}`);
return TotalTwo;
}
}
combine(1,3);
La sortie ne semble pas lire la fonction à l'intérieur de la grande fonction. Des idées pour résoudre ce problème?
Merci :)
4 Réponses :
Vous avez oublié d'appeler les fonctions internes. Essayez ceci:
function combine(Human,Alien)
{
function one (Human)
{
TotalOne = Human + 5;
console.log(`The Number Of Human : ${TotalOne}`);
return TotalOne;
}
function two (Alien)
{
TotalTwo = Alien + 10;
console.log(`The Number Of Alien : ${TotalTwo}`);
return TotalTwo;
}
one(Human);
two(Alien);
}
combine(1,3);
Juste pour ajouter: comment puis-je retarder le processus? comme la sortie de la fonction un sera affichée en premier et peut-être après quelques minutes la sortie de la fonction deux sera affichée. existe-t-il un moyen de rendre la sortie dans le grand délai de fonction tout en exécutant la grande fonction?
Enveloppez l'appel aux deux (Alien) dans un SetTimeout, comme ceci setTimeout (() => two (Alien), 1000) . Pour en savoir plus: w3schools.com/jsref/met_win_settimeout.asp
Ou en fait, encore plus simple: setTimeout (deux, 1000, Alien);
Vous n'appelez pas la fonction un et deux dans la fonction de combinaison
function combine(Human,Alien)
{
function one (Human)
{
TotalOne = Human + 5;
console.log(`The Number Of Human : ${TotalOne}`);
return TotalOne;
}
function two (Alien)
{
TotalTwo = Alien + 10;
console.log(`The Number Of Alien : ${TotalTwo}`);
return TotalTwo;
}
one(Human); //you missed the function invocation of one function
two(Alien); //you missed the function invocation of two function
}
combine(1,3)
Vous avez une grande fonction et deux fonctions à l'intérieur. Ce sont des déclarations de fonction . La dernière ligne correspond à la fonction appel . Cet appel exécute une grande fonction, qui dans son corps déclare les deux fonctions internes. Mais vous avez oublié d ' appeler ces fonctions dans le corps des grandes fonctions.
Si vous ne voulez pas alourdir votre fonction 'combine', veuillez prendre l'implémentation des fonctions 'one' et 'two' en dehors de son corps. Cela rendra le programme plus modulaire et facile à comprendre.
function one (Human){
TotalOne = Human + 5;
console.log(`The Number Of Human : ${TotalOne}`);
//return TotalOne; you do not need the return statement as your are printing the output on the console already.
}
function two (Alien){
TotalTwo = Alien + 10;
console.log(`The Number Of Alien : ${TotalTwo}`);
//return TotalTwo;you do not need the return statement as your are printing the output on the console already.
}
function combine(Human,Alien) {
one(Human);
two(Alien);
}
combine(1,3);