0
votes

en utilisant SETTIGET () comme une promesse dans le noeud JS

Je suis nouveau à JS et j'écris quelques API de repos simples dans Node.js pour mon application. Quelque part à l'intérieur du code, je veux attendre environ 5 secondes.

Je suis tellement confondu de l'utilisation de la promesse et de la méthode de délai d'attente normale et appelle la fonction ailleurs. Comme suit: p> xxx pré>

puis appelez la fonction: p> xxx pré>

ou p> xxx Pré>

appelez la fonction: p>

wait(5000)


6 commentaires

Oui, vous devez toujours utiliser alors ou attendre pour attendre le retard et reporter des choses comme console.log ("5 secondes passées") après ça. Il n'y a pas de différence entre vos extraits en ce qui concerne cela.


BTW, vous devriez vraiment supprimer que console.log ('5 secondes'); Ligne de la fonction SLEEP DÉMONTRE DU PARAMÈTRE POUR DES TEMPS DYNAMIQUES DE SALLEUR.


Lorsque vous avez une fonction qui retourne une promesse, vous devez l'utiliser à l'intérieur d'une autre fonction avec "attendre" pour l'appeler ou que vous utilisez "alors". Mais est-il possible de ne pas utiliser à la fois 'attendre et ensuite' et toujours obtenir la réponse? comme cela arrive dans le 1er cas.


Qu'entendez-vous par «réponse» et que se passe-t-il «dans le 1er cas»? Non, il est fondamentalement impossible de résulter immédiatement du futur, vous devez attendre une manière ou une autre.


Dans ces 3 cas, j'ai la même réponse. S'ils sont identiques, alors pourquoi je devrais utiliser ".Chen" après avoir appelé la fonction?


Si par "réponse", vous vous référez à la sortie du journal, le second cas doit être différent car il se connecte deux fois. Vous devez utiliser puis car il vous permet de faire des choses différentes après la promesse remplie, par exemple. Sleep (5000) .En ((() => console.log ('5 sec')) vs Sleep (3000) .Ce (() => console.log ('3 sec '))) . Si vous recherchez simplement l'avantage d'utiliser des promesses sur des rappels unis, voir Cette réponse


3 Réponses :


0
votes

alors vous utilisez lorsque vous souhaitez obtenir le résultat de la promesse, le code de promesse fonctionnera de toute façon même sans utiliser son résultat


0 commentaires

0
votes

mise à jour forte>: Dans le cas 3, vous pouvez attendre code> un async code> fonction.

setTimeout(() => {
  // Do something after 5 sec
}, 5000);


1 commentaires

Mon problème est en fait de l'appel d'une fonction qui retourne la promesse.



0
votes

premier cas.
1. Exécution asynchrone que Dosomething () n'attend pas SLEEP fonction pour terminer l'exécution.
2. La promesse restera dans l'état en attente. XXX

Second cas: de
1.Pomise est résolu le puis () / attraper () est appelé. de
2. Faire des Dosomething () Exécuter après Sleep () a terminé son exécution. xxx

troisième cas: de
1. La fonction ASYNC renvoie une promesse. de
2. Attends / alors - fonctionne de la même manière (résout / rejeter une promesse et une erreur de retour / erreur). de
3. Attendre ne peut être utilisé qu'à l'intérieur de la fonction ASYNC. de
de
Je vous suggère de créer une seule fonction ASYNC qui contient la logique commerciale de l'API. xxx

appeler attendre sans alors entraînera une promesse en attente, mais cela n'affectera pas votre logique professionnelle.
xxx


0 commentaires