前景
最近在试驾Nestjs,感觉还不错,但是知识点满多的,嗯,暂时还没放弃
在试驾的过程中,遇到一个获取数据逻辑,现在的逻辑这样的,函数如下
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Get('/index') index(@Res() res: Response) { var cats: Promise<Cats[]> = this.catsService.findAll();
cats.then(data => { return res.render('cats/index', { message: 'Cats', data: data }) }).catch(error => { console.log(error); }) }
|
写完之后,发现then…catch,让我想起来,我用Reactjs开发的时候,曾经把这玩意换成了async/await于是,函数修改成如下
1 2 3 4 5 6 7 8 9 10 11
| @Get('/index') async index(@Res() res: Response) { var cats: Promise<Cats[]> = this.catsService.findAll();
var data = await cats;
return res.render('cats/index', { message: 'Cats", data: data, }) }
|
该写完之后,又让我想起来,我在用Nodejs写接口的时候,需要对await cats的执行做下异常捕获,不然访问的时候直接崩溃,对终端不太友好,于是该写如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @Get('/index') async index(@Res() res: Response) { var cats: Promise<Cats[]> = this.catsService.findAll();
try { const data = await cats;
return res.render('cats/index', { message: 'Cats", data: data, }) } catch (err) { // 处理异常逻辑 console.log(err); } }
|
建议:使用async/await的情况下,如果遇到异常会导致接口异常,为了能够正常处理逻辑,可以使用try…catch