#sails.js #helper
#sails.js #помощник
Вопрос:
я пытаюсь создать помощника helloworld в sails.js (пример здесь)
мой файл get.js и паруса называют вспомогательную функцию, например get()
get.js файл:
module.exports = {
friendlyName: 'Format welcome message',
description: 'Return a personalized greeting based on the provided name.',
inputs: {
name: {
type: 'string',
example: 'Ami',
description: 'The name of the person to greet.',
required: true
}
},
fn: async function (inputs, exits) {
var result = `Hello, ${inputs.name}!`;
return exits.success(result);
}
};
но когда я делаю это в консоли sails
await sails.helpers.get("john")
он возвращает ошибку:
SyntaxError: await is only valid in async function
я не могу найти, где ошибка, или если есть ошибка. что может быть не так?
заранее спасибо
Ответ №1:
Ошибка, которую вы видите, заключается в том, что вы можете await
вернуть функцию только из другой async
функции. Если вы вызываете код «прямо из консоли», он взорвется, как вы видели.
Для быстрого тестирования / настройки вы можете получить возвращаемое значение от вашего помощника в консоли, используя .then()
sails.helpers.get("john").then(console.log).catch(console.error)
sails.helpers.get("john").then((greeting) => {
console.log('Got greeting:', greeting)
}).catch(console.error);
Или, обернув вспомогательный вызов в асинхронный IIFE, затем используя await
.
(async () => {
let greeting = await sails.helpers.get("john")
console.log(greeting)
})();
Комментарии:
1. Или вы можете использовать
sails.helpers.get("john").log()
. Журнал ведет себя так, как будто вы помещаете await перед помощником. Если я помню, Майк Макнил сказал, что в будущем консоль sails будет поддерживать await.