Attendre des fonctions asynchrones jusqu'à la fin sans l'ajout de rappel

Je suis en train d'écrire des tests pour mon Nœud.js/Express/Mangouste projet à l'aide de Moka et de Should.js et je suis en essais de mes fonctions que l'accès à mon MongoDB. Je veux que ces tests soient complètement indépendants de la réalité des enregistrements dans ma base de données, donc je veux créer une entrée puis de la charger, et de faire tous mes tests sur elle, puis le supprimer. J'ai mes fonctions de l'écrit (je suis en train d'écrire des tests après que le projet est terminé) tels que le create fonction n'a pas de rappel; il rend une page quand c'est fait. Dans mes tests, script, je l'appelle mon load_entry fonction après j'appelle create, mais parfois create prend plus de temps que d'habitude et donc load_entry déclenche une erreur lorsqu'il est impossible de charger l'article car il n'a pas encore créé. Est-il une manière de s'assurer une fonction d'asynchrone est terminée, sans l'aide de rappels?

S'il vous plaît laissez-moi savoir si il y a plus d'info je peux fournir. J'ai cherché partout sur Google et je ne pouvais pas trouver quelque chose qui a vraiment répondu à ma question, puisque la plupart des solutions de simplement dire "utiliser un rappel!"

Pour des fins de test, jetez un oeil à sinon.js (disponible sur ngp). Il vous permet d'écraser les appels asynchrones tels que les appels ajax et les délais d'attente etc. Fonctionne bien avec moka.

OriginalL'auteur gr3co | 2013-08-09