扩展函数(如 .all()、.final() 等是否有承诺标准?
Are there promise standards for extended functions like .all(), .finally(), etc
扩展承诺函数是否有标准或新兴标准,例如.all()
、.finally()
、.catch()
、.spread()
、.settle()
等?
我知道Promise A +规范,但这似乎只处理.then()
,我找不到所有其他有用功能的标准。 我熟悉jQuery,Q和Bluebird,并且所有之间存在有意义的差异,这似乎应该是一个临时条件,因为随着时间的推移,一切都应该收敛到一个标准,因为真的没有理由为类似的功能使用不同的名称。 我知道jQuery甚至不完全兼容Promise A +,但显然至少要转向这个目标,但是所有其他有用的功能呢?
想要了解当前和未来标准开发的动机是知道各种库中提供的哪些当前功能更有可能与未来的标准保持一致,哪些不是,这样我就可以编写将来在这方面需要较少维护的代码。 我已经做了一堆搜索,这似乎很难找到(无论如何对我来说(。 我可以在 ES6 草案规范中看到Promise.all()
,但没有看到任何其他规范。
是否有针对高级承诺函数(如.all()
、.finally()
、.catch()
、.spread()
和.settle()
(的建议标准?
我知道承诺A +规格,但这似乎只处理
.then()
是的。Promises/A+ 规范的目的是">详细说明 then 方法的行为,提供一个可互操作的基础,所有 Promises/A+ 符合 Promise 实现都可以依赖它来提供",并且还描述了 promise 同化,即如何将类似 promise 的对象转换为你自己的库的"真实"承诺。简而言之,它通过指定最小接口来关注互操作性。
我找不到所有其他有用功能的标准。
是的。每个库都定义了自己的库。当特定功能存在于许多实现中(并复制到(时,就会出现"标准"。
我想要了解当前和未来标准开发的动机是知道各种库中提供的哪些当前功能更有可能与未来的标准保持一致,哪些不是,这样我就可以编写将来在这方面需要较少维护的代码。
观看大型实现的问题讨论可能是最好的主意。但是,提供的大多数功能都相对容易填充。
黄金标准将是ES6和ES7。定期查看论文讨论邮件列表,了解功能讨论、用法问题和新草稿。
我可以在 ES6 草案规范中看到 Promise.all((,但没有看到任何其他规范。
如果您仔细观察,"承诺"部分详细介绍:
- 构造函数
Promise
,Promise.reject
和Promise.resolve
-
Promise.all
和Promise.race
-
Promise.prototype.catch
和Promise.prototype.then
.finally()
、.catch()
、.spread()
、.settle()
-
finally
在es討論上討論過(例如,這裡(,但可能不會進入ES6。 - 有关
catch
见上文 -
spread
被点差运算符取代和解构 -
settle
可以使用all
来实现,或者至少使用非常接近all
规范的算法
。
- 是否有JSDoc标准
- 计算日期选择器+时间选择器是否在东部标准时区的过去
- grunt-contrib-requirejs 是否旨在替换标准的 RequireJS 配置文件
- 是否有可接受的跨平台方法在基于触摸的设备上以标准 Web 表单显示数字键盘
- 是否有标准库或函数来解析 JSON 中的字符串
- 是否有将 WebSocket 请求转换为服务器上的 HTTP 请求的标准
- 扩展函数(如 .all()、.final() 等是否有承诺标准?
- 是否可以在不使用浏览器插件的情况下在标准 Web 应用程序中获取嵌套文件夹信息
- Javascript的名称空间大小写是否有标准
- Chrome是否违反了缓存标准
- 是否有一种标准的跨平台方式来处理和存储相对文件路径
- 是否可以使用本地TCP/IP连接作为两个脚本之间标准I/O的替代
- 是否有可能本地扩展web API以允许CSSRule.cssText返回非标准css属性
- Chrome和Firefox OS中的推送通知api是否采用相同的标准?
- 自定义元素的响应是否与标准元素不同;尤其是关于DOM查找
- 是否有可能在标准的JavaScript提示/确认弹出框中删除键盘访问?
- $(this)是否需要与“标准”一起使用?jQuery的插件模式
- 是否有一个跨浏览器标准的on-load事件用于HTML's "object"标签
- CHM文件;是否有标准的替代格式?
- 是否有一种方法使DOMElement.属性列表干净(标准)在旧的Internet explorer