2017-08-17 3 views
1

Voici mon code -Comment exporter une fonction asynchrone?

abc.js

class abc { 
    async foo1() { 
    // do something 
    return result; 
    } 
    async foo2() { 
    // do something 
    return result; 
    } 
    module.exports = abc 
} 

autre-file.js

const abc = requir(./abc); 
abc.foo1(); 
// this results in error 
// TypeError : abc.foo1 is not a function 

Comment dois-je faire?

+0

'abc' est une classe. Vous avez besoin d'une instance. Cela n'a rien à voir avec async. – SLaks

Répondre

0

Plusieurs points. Par convention, les noms de classes commencent par une majuscule. Votre problème n'a rien à voir avec les fonctions asynchrones. Vous avez 2 options pour résoudre ce problème. La première option est de rendre votre fonction statique. Ensuite, vous pouvez l'utiliser directement sans instance. La deuxième option est simplement l'appeler différemment: instancier la classe en premier pour obtenir l'instance, puis appeler votre méthode sur cette instance. Et gardez également à l'esprit, que le mot-clé d'attente peut être utilisé uniquement à l'intérieur d'une autre fonction asynchrone. Et vous devez attendre le mot-clé si vous voulez gérer la promesse, renvoyé par la fonction async (il renvoie la promesse de result, et non result)