编程结构:Promise和Future

Posted 会说话的帆船

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程结构:Promise和Future相关的知识,希望对你有一定的参考价值。

  非阻塞模型中Promise,Future 和 Callback一些比较常用的模型;

  Future表示一个可能还没有实际完成的异步任务结果;实际在编程中,应用future数据结构的时候,你得到并不是一个真实结果;而是一个FutureData; 真实的结果可能还没有处理完成。当然你可以针对这个结果添加Callback操作(成功或者失败的回调)。

  Promise结构如同一个状态机,是基于状态的流程控制结构;在不同的状态过程中,由任务执行提供相应的事务来决定在这个状态的时候,程序该做什么;

  Promise有4种状态:

  • pending: 还没有得到肯定或者失败结果,进行中
  • fulfilled: 成功的操作
  • rejected: 失败的操作
  • settled: 已被 fulfilled 或 rejected

  提供方法:

  • then:将事务添加到事务队列中
  • resolve:开启流程,让整个操作从第一个事务开始执行

 

以上是关于编程结构:Promise和Future的主要内容,如果未能解决你的问题,请参考以下文章

Netty 中的异步编程 Future 和 Promise

Netty入门——Future和Promise接口

folly教程系列之:future/promise

Js Deferred/Promise/Future 与 Scala 等函数式语言相比

c++11 future promise

异步调用future/promise模式(C++版本)