是否存在扩展函数的承诺标准,如.all(),. finally()等

jfr*_*d00 2 javascript promise

是否有标准或延长承诺的功能,如新兴的标准.all(),.finally(),.catch(),.spread(),.settle(),等...

我知道Promises A +规范,但这似乎只是处理,.then()我找不到所有其他有用功能的标准.我熟悉jQuery,Q和Bluebird,并且所有这些之间存在明显的差异,这似乎应该是一个临时条件,因为一切都应该随着时间的推移而收敛到标准,因为实际上没有理由为类似的功能部分使用不同的名称.我知道jQuery甚至没有完全承诺A +兼容,但显然它是一个明确的目标,至少转向那个,但是所有其他有用的功能呢?

我想要了解当前和未来标准开发的样子的动机是知道各种库中提供的当前功能更可能与未来标准一致,哪些不是这样我可以编写需要较少维护的代码这个领域在未来.我已经做了很多搜索,但似乎很难找到(对我而言).我可以Promise.all()在ES6草案中看到,但没有看到任何其他的.

是否有提出了先进的诺言功能,如标准.all(),.finally(),.catch(),.spread().settle()

Ber*_*rgi 6

我知道Promises A +规范,但这似乎只是处理 .then()

是.Promises/A +规范的目的是" 详细说明then方法的行为,提供一个可互操作的基础,所有Promises/A +符合承诺的实现都可以依赖于提供 ",并且还描述了promise同化,即如何转换promise - 像对象到你自己的图书馆的"真实"承诺.总之,它通过指定最小接口来关注互操作性.

我找不到所有其他有用功能的标准.

是.每个库都确定了自己的库.当许多实现中存在特定特征(并复制到特定特征)时,会出现"标准".

我想要了解当前和未来标准开发的样子的动机是知道各种库中提供的当前功能更可能与未来标准一致,哪些不是这样我可以编写需要较少维护的代码这个领域在未来.

可能正在观看大型实施的问题讨论是最好的主意.但是,大多数提供的功能相对容易填充.

黄金标准将是ES6和ES7.定期检查esdescuss邮件列表,以便讨论功能,使用问题和新草稿.

我可以在ES6草案规范中看到Promise.all(),但是没有看到任何其他的.

如果你仔细观察,Promise部分详细说明:

  • Promise构造函数,Promise.rejectPromise.resolve
  • Promise.allPromise.race
  • Promise.prototype.catchPromise.prototype.then

.finally(),.catch(),.spread(),.settle()

  • finally在es escucuss(例如这里)讨论过,但可能不会进入ES6.
  • 见上文 catch
  • spread 被扩散运营商和解构所取代
  • settle可以使用all,或至少使用非常接近all规范的算法来实现