Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Q Promise等价于蓝鸟Promise.Bind()_Javascript_Node.js_Promise_Q_Bluebird - Fatal编程技术网

Javascript Q Promise等价于蓝鸟Promise.Bind()

Javascript Q Promise等价于蓝鸟Promise.Bind(),javascript,node.js,promise,q,bluebird,Javascript,Node.js,Promise,Q,Bluebird,几个问题,Q是否有一个绑定方法,如和本幻灯片中所示?这是核心承诺/A+规范的一部分吗?如果没有,是否有polyfill或解决方案?好吧,Promises/a+规范只指定了如何使用。然后,因此.bind不是Promises/a+规范的一部分。事实上Promises/a+指定此值的行为类似于普通函数调用,并且Promises没有绑定-Bluebird通过返回一个非常规promise的BoundPromise来绕过此限制,并与其他promise库无缝互操作 没有等效的Q特性,一旦ES6着陆,您将能够使

几个问题,Q是否有一个绑定方法,如和本幻灯片中所示?这是核心承诺/A+规范的一部分吗?如果没有,是否有polyfill或解决方案?

好吧,Promises/a+规范只指定了如何使用。然后,因此.bind不是Promises/a+规范的一部分。事实上Promises/a+指定此值的行为类似于普通函数调用,并且Promises没有绑定-Bluebird通过返回一个非常规promise的BoundPromise来绕过此限制,并与其他promise库无缝互操作

没有等效的Q特性,一旦ES6着陆,您将能够使用fat arrow=>以词汇方式绑定then链中的范围:


一般来说,这是Bluebird对Q的许多特性之一,因为它改变了的行为,所以没有明显的“填充”方法。然后-你必须重写。然后在Q中承诺并有效地在整个库上创建一个包装器来实现这一点。

好吧,承诺/a+规范只指定了如何。然后,因此.bind不是Promises/a+规范的一部分。事实上Promises/a+指定此值的行为类似于普通函数调用,并且Promises没有绑定-Bluebird通过返回一个非常规promise的BoundPromise来绕过此限制,并与其他promise库无缝互操作

没有等效的Q特性,一旦ES6着陆,您将能够使用fat arrow=>以词汇方式绑定then链中的范围:


一般来说,这是Bluebird超过Q的许多特性之一,因为它改变了的行为,所以没有明显的“填充”方法。然后-你必须重写。然后在Q中承诺并有效地在整个库上创建一个包装器来实现这一点。

Q实现了承诺/a+规范,所以如果它不这样做,这可能是非标准的。Q是否有一个垫片来在承诺内设置这一点?@tadman Q实现了很多承诺/a+规范中没有的东西。在那张幻灯片中。绑定不是在承诺上调用的,而是在function@Esailija噢,糟了。你说得对。我的错误Q实现了承诺/A+规范,所以如果它没有实现,它可能是非标准的。Q是否有一个垫片来在承诺中设置这一点?@tadman Q实现了很多承诺/A+规范中没有的东西。在那张幻灯片中。bind不是在承诺中调用的,而是在function@Esailija噢,糟了。你说得对。我的错误
this.x = 15;
Q().then(() => console.log(this.x)) // always logs 15