2017-08-17 6 views
1

folgende ist mein Code -Wie exportiert man die asynchrone Funktion?

abc.js

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

another-file.js

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

Wie soll ich das tun?

+0

'abc' ist eine Klasse. Sie benötigen eine Instanz. Das hat nichts mit Async zu tun. – SLaks

Antwort

0

Mehrere Punkte. Per Konvention beginnen Klassennamen mit Großbuchstaben. Ihr Problem hat nichts mit asynchronen Funktionen zu tun. Sie haben 2 Möglichkeiten, um dieses Problem zu lösen. Die erste Option besteht darin, Ihre Funktion statisch zu machen. Dann können Sie es direkt ohne Instanz verwenden. Die zweite Option ist nur anders zu nennen: Instantiiere zuerst die Klasse, um die Instanz zu erhalten, und rufe dann deine Methode für diese Instanz auf. Und bedenken Sie auch, dass das await-Schlüsselwort nur innerhalb einer anderen asynchronen Funktion verwendet werden kann. Und Sie müssen erwarten, Schlüsselwort, wenn Sie versprechen, von Async-Funktion zurückgegeben werden (es gibt Versprechen von result, nicht result)

Verwandte Themen