调用异步静态函数时的SyntaxError

时间:2017-09-01 13:31:50

标签: javascript node.js async-await

我正在使用Node 8.3.0的async / await玩一下,我有一些静态功能问题。

MyClass.js

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

index.js

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

使用此代码我SyntaxError: Unexpected token上有一个MyClass。 这是为什么?不能使用await的静态函数或者我犯了错误吗?

谢谢

2 个答案:

答案 0 :(得分:7)

await运算符只能在异步函数中使用。

<body>
    <div class="blah"></div>
    <script>
      if ($('div.blah').length) $(document).data('name', 'value');
    </script>
    <?php $Phpvar = "<script>document.writeln($(document).data('name'))‌​;</script>"; 
    print_r($Phpvar); ?>
<body>

答案 1 :(得分:0)

你不能在主脚本中使用await ...试试这个

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

await只能在async函数中使用,如果未使用async调用,promise函数将返回await