async await 和 useEverything(react hook), 代数效应的联想

148 阅读1分钟

async await

众所周知,async await是generator的语法糖,一个递归执行(generator返回的迭代器(iterator))闭包方法。ok, 我们再看generator, 它带来的功能让你能想起什么,分布执行器?怎么那么像链表啊,当然我指的是功效

useEverything(react hook)

hook的背后原理也是通过链表有序存储数据,组件中的fiber对象来存储链表的第一个数据,所以我们使用hook的姿势是这样 useThing() useThing(), 就好像 iterator.next() iterator.next()

代数效应

刚开始接触这个名词,懵了一会。顾名思义,类似代数的功效,即:
a = 3x + 4y
a = 3 * await x + 4 * await y
功能逻辑层面,我们无需关注await,因为它是由底层提供好的,执行引擎执行到await,就会跳转到底层去执行,执行完毕再回到之前的程序中,继续执行剩下的逻辑,划重点,真的好神奇,它不像 try/catch, 捕捉完异常,执行引擎会回卷(摧毁所有上层调用栈以及其中的局部变量),利用代数效应,我们能把做什么(获取3x + 4y的结果)和怎么做(计算x, y)分离开。
useThing(hook)不就是负责生产x,y的吗?你细品。

总结

本文是本人最近的学习的一个串联,仅供参考和想象,欢迎讨论,希望我们能迸发出更多的火花