各位朋友,晚上好!我是你们的老朋友,今晚我们来聊聊 JavaScript 里的两个听起来有点玄乎,但实际上很有趣的概念:Continuations (也就是 Call/CC) 和 async/await。 首先,我知道很多人一听到 "Continuations" 就开始头疼,感觉像在看天书。别怕,咱们先把它拆解一下,然后你会发现它其实没那么可怕。 Continuations:时间暂停术! 想象一下,你正在做一道复杂的数学题,做到一半突然被打断,需要去接个电话。接完电话回来,你得重新回忆刚才做到哪一步了,挺麻烦的对吧? Continuations 就像一个魔法,它能把你在做题做到一半的状态(包括你脑子里想的,手里的草稿,等等)打包保存起来。等你接完电话回来,只需要一个咒语,就能立刻回到之前的状态,继续做题,就像时间暂停了一样! 在编程世界里,“状态” 指的是程序的运行环境,包括变量的值、调用栈、程序计数器等等。Continuations 允许我们捕获程序在某个特定点的状态,然后随时回到这个状态继续执行。 更具体地说,一个 Continuation 是程序执行到某个特定 …