Promise的.then的写法本身也是一种回调,并不能规避回调地域:
真正将回调展平的是async/await:
c大,我又来品味了一下这段话,
如果使用了回调
我们可以将每个函数的检测都视为一个任务节点,那么传统的回调各自相互包含的,我们认为函数 A 包含函数 B,而函数 B 包含函数 C
明明同样是检测,只是检测不同的东西,在逻辑上应该是属于一个贯通的,但是代码上却互相包含,实际是反直觉的
如果使用了Promise
这个时候函数直接的视觉上的逻辑是一个平级的,函数 A 后调用 B,函数 B 调用函数 C,每个都是相互独立并且行为和逻辑上是贯通的,这就是 Promise 的意义,也是异步编程的意义,原本割裂的代码得以组合到一起,本质是一种编程思想上的转变。
这样理解应该对吧
cxxjackie 发表于 2023-2-16 22:56
Promise的.then的写法本身也是一种回调,并不能规避回调地域:
真正将回调展平的是async/await:
我怕不直观,再贴个图
![图片.png](data/attachment/forum/202305/31/214519fnrezbb5rr8lt8du.png) 李恒道 发表于 2023-5-31 21:45
我怕不直观,再贴个图
![图片.png](data/attachment/forum/202305/31/214519fnrezbb5rr8lt8du.png)[/ ...
我倒是觉得互相包含不违反直觉,因为任务之间是有先后顺序的,无关顺序的任务使用并列的回调,这个在逻辑上没有问题。看起来别扭的主要原因是,编程语言天生就有顺序性(面向过程),后一句代码在前一句之后执行,这是自然而然的想法,但是回调写法打破了这种理解,Promise带来异步编程,async/await又将异步编程带回了顺序性的结构。
另外纠个错,你写了2个waitForLoad函数{:4_108:} cxxjackie 发表于 2023-5-31 22:31
我倒是觉得互相包含不违反直觉,因为任务之间是有先后顺序的,无关顺序的任务使用并列的回调,这个在逻辑 ...
太细了
大佬最新的话也加上了
感觉这回文章终于趋于完整了
牛逼!!!
页:
1
[2]