gpt4 book ai didi

javascript - Q Promise 等效于 BlueBird Promise.Bind()

转载 作者:行者123 更新时间:2023-11-30 10:12:56 25 4
gpt4 key购买 nike

几个问题,Q 是否有一个 bind() 方法,如 BlueBird API 中所示还有这张幻灯片 JavaScript Promises ~Kerrick Long ?它是核心 promise /A+ 规范的一部分吗?如果没有,是否有 polyfill 或解决方法?

最佳答案

嗯,Promises/A+ 规范只指定了 .then 的工作方式,所以 .bind 不是 Promises/A+ 规范的一部分。事实上,Promises/A+ 指定 this 值的行为就像一个普通的函数调用,并且 promises 不受约束 - Bluebird 通过返回一个 BoundPromise 来绕过这个限制,它不是一个常规的 promise 并且与其他 promise 无缝互操作图书馆。

没有等效的 Q 功能,一旦 ES6 落地,您将能够使用“粗箭头”=> 以便在词法上绑定(bind) then 中的范围链式:

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

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

关于javascript - Q Promise 等效于 BlueBird Promise.Bind(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25509977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com