在阅读了数十篇关于es6承诺是多么伟大以及为什么我们应该实现它们的文章之后,我觉得我的所有(非平凡的) javascript函数都应该是承诺。
事实上,在使用它们编写代码时,我感觉很棒,因为我避免了命运多端的三角形,而且似乎得到了清晰而简洁的代码。(它确实使关于执行的推理变得更加简单)。
我没能找到的是:你什么时候不使用承诺?我什么时候才能避免使用它们?
更新:
虽然我看到了一些伟大的观点,如API一致性,但我还没有找到一个坚实的,没有的情况。Lux的回答是,获取事件发射器的操作应该避免它们,因为重复的回调与承诺不兼容。不过,我确实觉得答案仍然缺乏实质内容来检验(作为正确的)现在。
发布于 2016-05-30 13:59:48
一些经验法则:
Promise,似乎在即将到来的未来越来越多的浏览器内置将运行的承诺。因此,如果您愿意编写现代代码,您就不会逃避承诺。发布于 2016-05-30 18:14:24
您可以对一次性异步操作使用承诺。启动操作,执行操作,将完成或结果或错误通知来电者,然后做好。
在情况下,不使用承诺的情况与上面描述的不同:
发布于 2016-05-30 13:51:28
好的,承诺只有一个用例:异步结果只出现一次。
如果可以同步返回结果,则不使用承诺,而且仍然需要事件回调,因为事件可能会多次发生。
https://stackoverflow.com/questions/37527292
复制相似问题