Ubuntu 20
节点12.18。4
npm6.14。6
续集6.3。5.
我遵循官方指南,现在感到很困惑
成功配置Sequelize并连接后,我尝试运行(来自官方文档)
await sequelize.authenticate();
它抛出SyntaxError:await仅在异步函数中有效
。
在正式开始页面https://sequelize.org/master/manual/getting-started.html,它清楚地指出:
Sequelize提供的大多数方法都是异步的,因此会返回Promises。它们都是Promise,所以您可以开箱即用Promise API(例如,使用然后、捕捉、最后)。
当然,使用异步和等待也可以正常工作。
你必须像这样使用异步函数
getStateById: async (req, res) => {
^^^^^^
sequelize.sequelize.transaction(async (t1) => {
let state = await sequelize.state.findOne({
where: {
id: req.params.id
}
});
let result = error.OK;
result.data = state;
logger.info(result);
return res.status(200).send(result);
}).catch(function (err) {
logger.error(err);
return res.status(500).send(error.SERVER_ERROR);
});
}
当你想在你的应用程序中使用wait时,async是必需的,它将只在async函数类型中使用
这意味着在函数中,如果必须等待,则需要声明异步外部函数:
async function() {
await sequelize.authenticate();
}
或
const nameYourFunction = async () => {
await sequelize.authenticate();
}
记住在wait之前声明async,或者如果不想声明async wait,可以使用promise
const nameYourFunction = () => {
sequelize
.authenticate()
.then((result) => {
console.log('nameYourFunction -> result', result);
})
.catch((error) => {
console.log('nameYourFunction -> error', error);
});
};
我在中写了这段代码 然后我尝试在另一个文件中使用它 我得到一个错误 “等待仅在异步函数中有效” 问题是什么?
我正在研究promsies和async/await的用法。 我编写了以下代码,它执行以下操作: 它获取一些数据库数据(使用Knex.js), 处理该数据, 将处理的数据分配到指定的属性中 这3个步骤执行了多次(在下面的代码中,执行了两次),并且始终等待执行: 现在,我正在尝试编写与等效的promise链,这就是我想到的: 但这不太管用。发生的是,在第一个返回之后,中的结束了它的等待,这导致返回-并
我正试图将图像上传到firebase存储,但调用该函数时,未执行wait以获取url。我错过了什么? 看看这个其他主题,我发现问题可能是“然后”,但我如何设置代码以等待url? 异步/等待/然后飞镖/颤振 谢谢
我正在尝试将数据库调用移出控制器,以清理并使其可测试。当它们在控制器中时,一切都会顺利进行。我将它们移出控制器,并添加了一个异步,以确保我们等待。否则,我将调用的中的函数。现在,一旦我使用async/await,控制器中的函数就会认为没有用户,因为它没有等待。 有几个关于异步等待的SO问题,但我没有找到一个解决我的问题。我确实验证了返回了我的用户,并添加了控制台日志来显示路径。 节点猫鼬异步等待似
我试图在react/electron项目中使用async/await,但它不起作用。我想要的是获取docker容器状态列表。但是安慰。日志(列表)返回未定义的。 有人能帮我吗?:)
问题内容: 我是一名普通的C#开发人员,但有时我会使用Java开发应用程序。我想知道是否有Java等效于C#async / await?简单来说,java相当于什么: 问题答案: 不,在Java中-甚至在v5之前的C#中,都没有等效的异步/等待方式。 在后台构建状态机是一项相当复杂的语言功能。 Java中对异步/并发的 语言 支持相对较少,但是该软件包包含许多与此相关的有用 类 。(不完全等同于任