类型错误:对象不支持属性或方法“finally”。

5

我正在使用angular 1.6结合gulp和es6 promise,其中包含有.finally()块,在其他所有方面都工作正常,但在IE Edge和IE 11上无法正常工作。


1
请访问[帮助],参观[tour]以了解如何[提问]。进行一些研究,在SO上搜索相关主题;如果遇到困难,请发布您的尝试的[mcve],注明输入和预期输出。 - mplungjan
使用AngularJS承诺与$q服务一起使用。 - Aleksey Solovey
2
ES6不支持finally,但ES2018将会支持。 - str
2个回答

4

有没有其他方法可以实现类似于finally块的功能,使其在成功或拒绝的任一情况下执行? - Mr. Raj Kale
嘿,我猜你可以使用Promise.all或者将then和catch组合起来作为替代方案:promise.then(() => doSomething()).catch(() => doSomethingElse()).then(() => onFinish()) - Samuel Maisonneuve

1

以下是更多信息:

在 Edge 开发工具中,使用 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134

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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接