node.js的世界,从callback开始,不会止于async.

所有人都在骂为什么不能完全进化,其实我感觉这就是老外的细心,为了承上。这也就是为什么async其实就是promise一样,假如不是一样的东西,如何承上启下。node.js异常处理一直为人诟病,其实为什么不能优雅心里没有*数吗?这就是设计得辣鸡....好吧,我只是一个用辣鸡的辣鸡。

有些东西不能改变,只能自己改变自己。google了一番,我大概找出了2种我自己喜欢的方式。

一、我只是console一下,我不处理。


async function getData(){
const a = await someFunction().catch((error)=>console.log(error));
const b = await someOtherFunction().catch((error)=>console.log(error));
if(a && b ) console.log("some result")
}

二、约定法则


const go = async () => {
const readFileResult = await sureThing(readFile('some.json'));
if (readFileResult.ok) {
const {
ok,
error,
data
} = await sureThing(parseJSON(data));
if (ok) {
// use our data
} else {
return {
ok,
error
};
}
} else {
return readFileResult;
}
};

以上2种方法,我觉得是比较适合现在的。第一种的不处理,显得更有佛性。而第二种,在保留了同步的写法,也可以处理异步,相得益彰。

打个广告: nodejs 学习群 atob('ODMwNTMxODc=')

https://medium.com/tech-buddy/async-await-without-try-catch-in-javascript-fdd38abf7e90

https://dzone.com/articles/easier-error-handling-using-asyncawait

[node.js] async/await如何优雅处理异常?的更多相关文章

  1. node.js async/await 继发执行与并发执行

    async/await 继发执行与并发执行,看如何控制 两个异步函数 foo bar function foo() { return new Promise((resolve, reject) =&g ...

  2. js async await 终极异步解决方案

    既然有了promise 为什么还要有async await ? 当然是promise 也不是完美的异步解决方案,而 async await 的写法看起来更加简单且容易理解. 回顾 Promise Pr ...

  3. [转] js async await 终极异步解决方案

    阅读目录 回顾 Promise async await 字面理解 async.await 如何执行 await 操作符 总结 既然有了promise 为什么还要有async await ? 当然是pr ...

  4. js async/await

    一.async 带async关键字的函数,是声明异步函数,返回值是promise对象,如果async关键字函数返回的不是promise,会自动用Promise.resolve()包装. async f ...

  5. Node.js——Async

    一:流程控制 为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程 ...

  6. 用node.js做cluster,监听异常的邮件提醒服务

    __ __ __ _ __ ____ ____ ____/ /__ _____/ /_ _______/ /____ _____ ___ ____ ___ ____ _(_) / / __ \/ __ ...

  7. node.js async 几个函数

    async.waterfallasync.seriesasync.parallelasync.auto http://my.oschina.net/huangsz/blog/176203http:// ...

  8. 微信小程序捕获async/await函数异常实践

    背景 我们的小程序项目的构建是与web项目保持一致的,完全使用webpack的生态来构建,没有使用小程序自带的构建功能,那么就需要我们配置代码转换的babel插件如Promise.Proxy等:另外, ...

  9. Node.js之绝对选择(2018版)

    [这篇是很早期的文字,由于引用较广泛,担心误导,故按照现在的情形做一些修改] 几年前,完全放弃Asp.net,彻底脱离微软方向.Web开发,在公司团队中,一概使用Node.js.Mongodb.Git ...

随机推荐

  1. BZOJ3262:陌上花开 & 洛谷3810:三维偏序——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3262 https://www.luogu.org/problemnew/show/3810 Desc ...

  2. Django 分页 以及自定义分页

    Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表.元组或其它可迭代的对象. 基本语法 1 2 3 4 5 6 7 8 9 ...

  3. ORACLE 中如何截取到时间的年月日中的年、月、日

    在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来,并不是一件难事.常用的方法是:Select to_number(to_char(sysdate,'yyyy')) from d ...

  4. 洛谷P1199 三国游戏

    题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之 ...

  5. openstack日志模块

    一.简单的python日志模块介绍 http://www.cnblogs.com/tuzkee/p/3974193.html http://blog.csdn.net/jgood/article/de ...

  6. API图片路径和超链接语义化转换

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. Arrays.asList方法遇到的问题

    在使用Arrays.asList(T...a)方法时,遇到了 java.lang.UnsupportedOperationException  异常. 后来发现,该方法返回的类型是Arrays$Arr ...

  8. Unsupervised learning, attention, and other mysteries

    Unsupervised learning, attention, and other mysteries Get notified when our free report “Future of M ...

  9. Qt undefined reference to ***

    错因:某个类声明了一个函数但是没有定义就直接使用.

  10. linux中execve函数的用法

    在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序.exec函数一共有六个,其中execve为内核级系统调用,其他(execl,execle,execlp,execv,execvp) ...