对蟒蛇的承诺
promise的Python项目详细描述
承诺
这是python中promises的实现。这是一套很好的 promises/a+设计为具有可读性、可执行的代码并提供 只是在中使用承诺绝对必要的扩展 蟒蛇. < /P>
它完全兼容 承诺/a+ 规格
安装
$ pip install promise
用法
下面的示例演示如何加载Promise库。然后 演示如何从头开始创建承诺。你只要打电话 承诺(fn) 。对于返回的内容有一个完整的规范 用这种方法 承诺/a+
frompromiseimportPromisepromise=Promise(lambdaresolve,reject:resolve('RESOLVED!'))
API
在所有示例之前,您需要:
frompromiseimportPromise
承诺(分解器)
这创造并回报了一个新的承诺。解析程序必须是函数。 函数传递两个参数:
- 应使用单个参数调用resolve 。如果它被称为 有了非承诺价值,承诺就实现了 价值。如果它是用承诺(a)调用的,那么返回的承诺 承担新承诺(a)的状态。
- reject 应该用一个参数调用。归还的人 这一论据将拒绝承诺。 < > >
类方法
这些方法是通过调用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)
一种特殊的功能,它把承诺的字典翻过来 成为一本价值字典的承诺。换句话说,这就变成了 价值承诺词典 值:
此函数检查 obj 是否是一个 承诺,或者 铸造 编辑
承诺、承诺(func)
此函数将调用func的结果包装在promise中。 实例。
实例方法
通过调用promise实例调用这些方法 mypromise.methodname
答应。然后(你完成了吗,拒绝了吗)
此方法遵循 承诺/a+ 规格 它解释 事情很清楚,所以我建议你读一下。
将调用 是否满足 或 是否拒绝 ,它们将 不能被多次呼叫。他们将通过一个单一的论点 将始终异步调用(在事件的下一轮中 循环)
如果实现了承诺,则调用 是否实现了 。如果 承诺被拒绝,然后调用 是否拒绝 。
调用 。然后也返回一个承诺。如果 called返回一个promise,由 返回的promise。 承诺的状态。如果调用的处理程序返回 不是承诺的值,则 返回的承诺将是 实现了这个价值。如果被调用的处理程序抛出 异常,则 返回的承诺将被拒绝。 例外。
承诺。捕获(是否拒绝)
糖用于承诺。然后(没有,没有拒绝) ,映射到 同步代码。
承诺。完成(是否完成,是否拒绝)
与 的语义相同,但它不返回承诺 任何异常都会被重新抛出,以便记录下来(崩溃 非浏览器环境中的应用程序)