gpt4 book ai didi

angularjs - Angular $q .catch() 方法在 IE8 中失败

转载 作者:行者123 更新时间:2023-12-03 09:03:26 24 4
gpt4 key购买 nike

我在 IE8 上遇到了一个奇怪的错误,同时试图捕获一个拒绝 promise (基本 ngResource 调用返回的 promise ):

此代码适用于 .then(success, fail)句法 :

promise.then(function(response) {
// success
},
function(response) {
// error
});

但是这个失败了 .then(success).catch(fail)句法 :
promise.then(function(response) {
// success
})
.catch(function(response) {
// error
});

以及指向 .catch() 的 IE 错误线是:

Expected identifier



难道我做错了什么 ?有人重现吗?还是由于关键字受限而成为常见的 IE8?

谢谢

最佳答案

您需要使用括号表示法:

promise.then(function(response) {
// success
})
["catch"](function(response) {
// error
});

这是因为 IE8 实现的 ECMAScript 3 不允许使用点表示法的裸关键字。现代浏览器实现了允许它的 ECMAScript 5。

很多图书馆别名 .catch与另一个关键字。然而,Angular promise 的构建方式并不容易扩展 $q promise 。所以 ["catch"]将不得不做。请注意, finally 也是如此。 .

关于angularjs - Angular $q .catch() 方法在 IE8 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23105089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com