对蟒蛇的承诺

promise的Python项目详细描述


承诺

这是python中promises的实现。这是一套很好的 promises/a+设计为具有可读性、可执行的代码并提供 只是在中使用承诺绝对必要的扩展 蟒蛇. < /P>

它完全兼容 承诺/a+ 规格

travispypi工作服

安装

$ pip install promise

用法

下面的示例演示如何加载Promise库。然后 演示如何从头开始创建承诺。你只要打电话 承诺(fn) 。对于返回的内容有一个完整的规范 用这种方法 承诺/a+

frompromiseimportPromisepromise=Promise(lambdaresolve,reject:resolve('RESOLVED!'))

API

在所有示例之前,您需要:

frompromiseimportPromise

承诺(分解器)

这创造并回报了一个新的承诺。解析程序必须是函数。 函数传递两个参数:

  1. 应使用单个参数调用resolve 。如果它被称为 有了非承诺价值,承诺就实现了 价值。如果它是用承诺(a)调用的,那么返回的承诺 承担新承诺(a)的状态。
  2. reject 应该用一个参数调用。归还的人 这一论据将拒绝承诺。
  3. < > >

类方法

这些方法是通过调用promise.methodname来调用的。

承诺。决心(价值)

将价值观和国外承诺转换为承诺/a+承诺。如果你 传递一个值,然后返回该值的承诺。如果你通过了 接近承诺的东西(例如 promise)它返回的promise状态为 value (拒绝或满足)。

承诺。拒绝(价值)

返回具有给定值的拒绝承诺。

承诺。全部(列表)

返回列表的承诺。如果用一个参数调用它 然后返回一个带有任何承诺的列表副本的承诺 取而代之的是他们实现的价值观。例如

p=Promise.all([Promise.resolve('a'),'b',Promise.resolve('c')]) \
       .then(lambdares:res==['a','b','c'])assertp.get()isTrue
Promise.cast(obj)

如果可能的话,此函数将 obj 包装为 承诺。蟒蛇 支持future s,当 断然的.具有与promise.resolve(obj) 相同的效果

承诺。对于dict(d)

一种特殊的功能,它把承诺的字典翻过来 成为一本价值字典的承诺。换句话说,这就变成了 价值承诺词典 值:

< h5>承诺。是否可行(obj)

此函数检查 obj 是否是一个 承诺,或者 铸造 编辑

承诺、承诺(func)

此函数将调用func的结果包装在promise中。 实例。

实例方法

通过调用promise实例调用这些方法 mypromise.methodname

答应。然后(你完成了吗,拒绝了吗)

此方法遵循 承诺/a+ 规格 它解释 事情很清楚,所以我建议你读一下。

将调用 是否满足 是否拒绝 ,它们将 不能被多次呼叫。他们将通过一个单一的论点 将始终异步调用(在事件的下一轮中 循环)

如果实现了承诺,则调用 是否实现了 。如果 承诺被拒绝,然后调用 是否拒绝

调用 。然后也返回一个承诺。如果 called返回一个promise,由 返回的promise。 承诺的状态。如果调用的处理程序返回 不是承诺的值,则 返回的承诺将是 实现了这个价值。如果被调用的处理程序抛出 异常,则 返回的承诺将被拒绝。 例外。

承诺。捕获(是否拒绝)

糖用于承诺。然后(没有,没有拒绝) ,映射到 同步代码。

承诺。完成(是否完成,是否拒绝)

的语义相同,但它不返回承诺 任何异常都会被重新抛出,以便记录下来(崩溃 非浏览器环境中的应用程序)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?