Node.JS 以下简称 node。
node 中的 async 和 await 各位都不陌生吧?普通的 function 和 async function 有什么区别 我相信大家也知道,如果你不知道,请看这篇文章 https://blog.csdn.net/ScumStu...
看到第1.3章节即可,记住 async 函数返回的是一个 Promise 对象。
背景:一个大型项目A,也许还有其它部门项目和它耦合,这时A项目的 c 函数,往 if 判断里加一个异步请求。
那么问题就来了
这时要么使用回调的方式,把 if 块里的代码放到回调里,并把 if 块外的代码也放进去,并在回调结尾处执行 return;
把 c 函数变为 async 函数,c 函数此时变成了一个 Promise,所有调用 c 函数的函数为了能同步调用 c 函数也变成了 async 函数。
按照第二步接着说,假如 a、b 函数为了同步调用 c 函数变成了 async 函数,那么所有调用 a、b 函数的函数也要变成 async 函数。
浏览器中 js 写起来也一样
我思索了良久,有了上面这个想法后,我就想:我在干什么?怎么工作难度成指数级增长了,写 node 语言的团队难道不知道这个问题?谷歌难道不知道这个问题?
可以使用发布订阅等模式将逻辑分层,中断异步的传染性。
以 vue 开发为例,参考:在前端开发中如何消除异步的传染性?