在运行流星应用程序时遇到错误“等待是保留字”

时间:2019-01-08 08:55:10

标签: node.js meteor

我正在使用Crypto2(https://www.npmjs.com/package/crypto2)库进行公钥/私钥生产。我在注册一些患者时生成了这些密钥,如下面的代码所示。

Template.patient_register.events({
  'submit form': function(event, template) {
      event.preventDefault();
     const {privateKey,publicKey} = await crypto2.createKeyPair();
      var _email           = event.target.registerEmail.value;
      var _password        = event.target.registerPassword.value;
      var _disease_group   = event.target.registerDisease_Group.value;
      var _account_type    = event.target.registerAccount_Type.value;
      var _publickey       =  await crypto2.readPublicKey('key.pub');

      console.log("Public Key Is:::"+_publickey);
      console.log("Private Key Is:::"+await crypto2.readPrivateKey('key.pem'));
      var newAccount = {
         email         :  _email,
         password      :  _password,
         disease_group :  _disease_group,
         account_type  :  _account_type,
         public_Key    :  _publickey
      };

      Accounts.createUser(newAccount, function(err) {
       if (err) {
       ....................

       } else {
        .....................
       }
      });

      template.find("form").reset();

   }
});

但是,当我运行这段代码时,它失败并显示错误“ await是保留字”。请帮助我。

2 个答案:

答案 0 :(得分:1)

您必须添加 async 声明,以告知编译器该函数使用异步函数,并且必须await来使用它们:

'submit form': async function(event, template) {

答案 1 :(得分:1)

(Async / await)始终成对使用。每当创建包含等待语句的函数时,都必须与async一起使用。

function add(x,y){
   return x+y;
} 

// if you do not write async you will be prompt with (SyntaxError: await is only valid in async function)

async function test(){
  const x = 1;
  const y = 2;
  const result = await add(x,y);
  console.log(result) // 3
}