[英]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({...})
})();
如果您使用等待,則不應使用回調。 您應該按照此處的說明管理響應
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.