mongoomise

初识JavaScript Promises之二

断了今生、忘了曾经 提交于 2019-12-09 13:36:41
初始JavaScript Promises之二 上一篇我们初步学习了JavaScript Promises,本篇将介绍Promise如何优雅地进行错误处理以及提升操作 node.js风格 1 的异步方法的逼格,没错就是使用 promisify 2 。 异步编程中的错误处理 人性的、理想的也正如很多编程语言中已经实现的错误处理方式应该是这样: try { var val = JSON.parse(fs.readFileSync("file.json")); }catch(SyntaxError e) {//json语法错误 console.error("不符合json格式"); }catch(Error e) {//其它类型错误 console.error("无法读取文件") } 很遗憾,JavaScript并不支持上述方式,于是“聪明的猴子”很可能写出下面的代码: try { //code }catch(e) { if( e instanceof SyntaxError) { //handle }else { //handle } } 相信没人会喜欢第二段代码,不过传统的JavaScript也只能帮你到这里了。 上面的代码是同步模式,异步模式中的错误处理又是如何呢? fs.readFile('file.json', 'utf8', function(err, data){ if