繁体   English   中英

BlueBird Promise.Bind()的Q Promise等效项

[英]Q Promise Equivalent of BlueBird Promise.Bind()

很少有问题,Q是否具有BlueBird API和本幻灯片JavaScript Promises〜Kerrick Long所示bind()方法? 它是核心承诺/ A +规范的一部分吗? 如果没有,是否有polyfill或解决方法?

好吧,Promises / A +规范仅指定.then工作方式,因此.bind不是Promises / A +规范的一部分。 实际上,Promises / A +指定this值的行为类似于普通函数调用,并且Promise未绑定-Bluebird通过返回不是常规Promise的BoundPromise并与其他Promise库无缝互操作来绕过此限制。

没有等效的Q功能,一旦ES6着陆,您就可以使用“ fat arrow” =>来按词法将范围绑定到then链中:

this.x = 15;
Q().then(() => console.log(this.x)) // always logs 15

一般而言,这是Bluebird超过Q的众多功能之一,没有明显的方法可以“将其.then ”,因为它会改变.then的行为-您必须覆盖.then在Q promise中并有效地创建包装器在整个图书馆中做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM