异步编程模型:Promises vs Futures
本文将介绍两种异步编程模型: Promise 和 Future。在计算机科学中,future、promise,是在某些并发编程语言中,指称用于同步程序执行的一种构造。由于某些计算尚未结束,故而需要一个对象来代理这个未知的结果。Future 和 Promise 的设计理念整体上非常相似,但是在不同的语言和框架实现中又存在一定的区别,对此,这里我们基于最广泛的定义进行介绍。
- Future:表示异步任务的返回值,表示一个未来值(只读)的占位符,即未来值的消费者。
- Promise:表示异步任务的执行过程,表示一个可写的单赋值容器,即未来值的生产者。
在同时包含 Future 和 Promise 的实现中,一般 Promise 对象会有一个关联的 Future 对象。当 Promise 创建时,Future 对象会自动实例化。当异步任务执行完毕,Promise 在内部设置结果,从而将值绑定至 Future 的占位符中。Future 则提供读取方法。将异步操作分成 Future 和 Promise 两个部分的主要原因是 为了实现读写分离,对外部调用者只读,对内部实现者只写。






