【发布时间】:2015-11-08 16:49:08
【问题描述】:
我偶然发现了一些 sn-ps similar to this one:
System.import('core-js').then( function() {
System.import('polymer/mutationobservers').then( function() {
System.import('aurelia-bootstrapper');
})
});
它是回调地狱的替代品 - 承诺地狱吗?可以将连续的System.imports 展平以使用 Promise 链接,还是可能存在问题?
【问题讨论】:
-
@torazaburo 我只是在引用现有的代码片段,但是是的,这三个模块相互依赖。前两个是 polyfill 库,如果需要,由开发人员选择。
-
@torazaburo 他链接到代码所在的位置。它明确表示,如果您想要 IE9 支持,则必须加载它们,但它们是可选的。 sn-p 直接来自 Aurelia 网站。它们确实相互依赖,因为它们是 polyfills 并且依赖于存在的全局变量。
-
@estus - 不幸的是,promise 被广泛误解,所以是的,你会经常遇到这样的代码。话虽如此,有一些合法的方法可以避免回调地狱 - 创造大量回调的人可能在创造大量承诺时没有问题。
-
@aaaaaa 在体面的框架文档中看到这一点令人困惑(我认为 Aurelia 是一个体面的文档),所以让我想知道这背后是否有某种原因。
标签: javascript promise ecmascript-6 systemjs