簡體   English   中英

如何在創建新記錄時在風帆中使用“等待”

[英]How to use “await” in sails when creating a new record

我想用“等待”

根據帆文件,我的行為如下:
https://sailsjs.com/documentation/reference/waterline-orm/models/create

create: function (req, res, next) {

var new_place = await Place.create({...}, function place_created(err, XX){

  if(err && err.invalidAttributes) {
    return res.json({'status':false, 'errors':err.Errors});
  } 
}).fetch();
if(new_place){
  console.log(new_place);
  res.json({'status':true,'result':new_place});
 }
},  

但是我得到以下錯誤:

var new_place = await Place.create({...}, function place_created(err, XX){
                ^^^^^
SyntaxError: await is only valid in async function  

我該怎么做才能解決這個問題。

SyntaxError:await僅在異步函數中有效

這是因為您在非async的函數中使用await

請記住, await關鍵字僅在異步函數內有效 如果在異步函數體外使用它,則會出現SyntaxError。

MDN異步功能

您需要使函數async才能工作。 在代碼中進行這些更改,

'use strict';

create: async function(req, res, next) {
        var new_place = await Place.create({ ... }, function place_created(err, XX) {
            if (err && err.invalidAttributes) {
                return res.json({ 'status': false, 'errors': err.Errors });
            }
        }).fetch();
        if (new_place) {
            console.log(new_place);
            res.json({ 'status': true, 'result': new_place });
        }
    },

我認為你應該讓你的函數異步。

 async(function(){
   var new_place = await Place.create({...})
})();

如果您使用等待,則不應使用回調。 您應該按照此處的說明管理響應

您還可以查看如何在sail.js中管理異步的指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM