Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在knex中,如何将异步/等待函数更改为使用.then方法的函数?_Javascript_Knex.js - Fatal编程技术网

Javascript 在knex中,如何将异步/等待函数更改为使用.then方法的函数?

Javascript 在knex中,如何将异步/等待函数更改为使用.then方法的函数?,javascript,knex.js,Javascript,Knex.js,我正在knex.js中编写一个简单的post路由,它向数据库添加一条消息。目前它是一个异步/等待函数,但如何使用.then块重构它呢?代码正在运行,我只是好奇。代码如下: const todo = req.body.message; try { await db('todos').insert({message: todo}); res.json({message: 'todo successfully stored'}); } catch (err) { console.log(e

我正在knex.js中编写一个简单的post路由,它向数据库添加一条消息。目前它是一个异步/等待函数,但如何使用.then块重构它呢?代码正在运行,我只是好奇。代码如下:

const todo = req.body.message;
try {
  await db('todos').insert({message: todo});
  res.json({message: 'todo successfully stored'});
} catch (err) {
  console.log(err);
}


谢谢

我确信
async
函数只返回一个承诺,因此您可以简单地删除
wait

const todo=req.body.message;
试一试{
db(‘待办事项’)
.insert({消息:todo})
。然后((结果)=>{
res.json({消息:“todo已成功存储”});
});
}捕捉(错误){
控制台日志(err);
}

Try&catch仅在使用wait时才相关,@felixmosh Try/catch用于任何异常处理-可能期望
db()
.insert
会爆炸,或者可能是无关的-但是,它当然不仅仅用于async/wait,我的意思是,因为在这个示例中,db访问是异步的,所以try&catch在这里是多余的。它不会捕获数据库中的异常。为了捕获此类错误,您需要在承诺中附加
.catch