【问题标题】:TypeError: Object doesn't support property or method 'finally'TypeError:对象不支持“最终”的属性或方法
【发布时间】:2018-10-10 06:49:26
【问题描述】:

我正在使用带有 gulp 和 es6 promise 的 angular 1.6,它具有 .finally() 块,除了 IE Edge 和 IE 11 之外的所有其他版本都可以正常工作。

【问题讨论】:

标签: javascript angularjs ecmascript-6 es6-promise


【解决方案1】:

【讨论】:

  • 是否有任何其他方法可以执行类似 finally 块的功能,无论是成功还是拒绝都将执行?
  • 嘿,我想你可以使用 Promise.all 或组合然后 catch 作为替代方案:promise.then(() => doSomething()).catch(() => doSomethingElse()).then(() => onFinish())
【解决方案2】:

更多信息:

Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134的 Edge 开发工具中:

typeof (new Promise(()=>1).finally)
"undefined"

typeof (new Promise(()=>1).then)
"function"

typeof (new Promise(()=>1).catch)
"function"

对于我的应用程序,我使用 https://cdnjs.com/libraries/es6-promise 填充 Promise(最初这只是为了填充 IE 11)。

但后来我注意到我的应用无法在 Edge 中运行。

相关问题 - https://github.com/stefanpenner/es6-promise/issues/330#issuecomment-425233364

现在我已经切换到 Bluebird 来为 IE 11 和 Edge 进行 polyfill。

【讨论】:

    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2019-07-05
    • 2015-04-14
    相关资源
    最近更新 更多