promise
或future
与lazily evaluated function/object
之间的区别是什么?
它们都像延迟计算的占位符一样,我理解它们运作的原则是不同的,但实际的区别是什么?
答案 0 :(得分:3)
承诺和"懒惰评估对象"是代理的形式。 Proxy是关键词。代理意味着"实际对象值的占位符"
承诺是值的时间约束(时间)代理。像Kris Kowal的Q-Connection这样的一些图书馆甚至让你用承诺来代理远程对象,并且有很多关于这个用例的研究(真的!)是由Mark Miller在敌对条件下做出的。这实际上是承诺的原始动机(处理网络延迟)。
延迟评估对象是一个值的代理,用于将评估推迟到您 来执行此操作。