web-dev-qa-db-fra.com

SyntaxError lors de l'appel d'une fonction statique asynchrone

Je joue un peu avec async/wait de Node 8.3.0 et j'ai un problème avec la fonction statique.

MyClass.js

class MyClass {
  static async getSmthg() {
    return true;
  }
}
module.exports = MyClass

index.js

try {
  const result = await MyClass.getSmthg();
} catch(e) {}

Avec ce code, j'ai un SyntaxError: Unexpected token sur MyClass. Pourquoi donc? Impossible d'utiliser une fonction statique avec await ou ai-je fait une erreur?

Je vous remercie

8
NorTicUs

L'opérateur wait ne peut être utilisé qu'à l'intérieur d'une fonction asynchrone.

(async () => {
  try {
    const result = await MyClass.getSmthg();
  } catch(e) {}
})()
7
Endless

Vous ne pouvez pas utiliser wait dans le script principal ... Essayez ceci

async function test(){
    try {
      const result = await MyClass.getSmthg();
      return result;
    } catch(e) {}
}
test().then(function(res){console.log(res)})

await ne peut être utilisé que dans une fonction async, et la fonction async renverra un promise si elle n'est pas appelée avec await.

0
Salketer