我有一个使用ES6编写的React项目。它通过Babel编译并且运行得很好。除了一个Promise(其中之一!)只会在IE中出现问题,这已经知道-不支持Promise。所以我立即想到添加一个Polyfill来为IE提供Promise,但是我突然想到“等等,你已经写ES6了,那不是已经编译成ES5了吗?”谁比SO更了解呢?
因此,在我的项目中添加es6-promise等Polyfill是否有意义?如果有必要,语法上应该如何使用它?目前我只有导入,但我应该以某种方式实现它吗?
import Promise from 'es6-promise';
这里还有一个承诺在IE中会引起问题,也许我有一个语法错误,但是我自己没有注意到!:)
new SingleObjectResource(DJ_CONST.API.setLanguage)
.put(null, {language_code: theLanguage})
.then(
function() {
window.location.reload();
}
);
SingleObjectResource
是你自己写的还是第三方库?控制台有没有报错?如果没有,尝试在.then()
后添加.catch(function (error) { console.log(error); })
。 - JLRisheSingleObjectResource
是一个库的一部分。现在我已经将babel-polyfill添加到我的项目中,但IE仍然无法正常工作,并且在IE控制台中收到了“未处理的Promise拒绝错误”。不知道在添加babel之前是否存在该问题。它只是在等待一段时间后才出现,而不是立即出现。无论如何 - 我应该在包含SingleObjectResource
的文件中导入polyfill还是在调用包含SingleObjectResource
的函数的文件中导入? - wanaryytel