TypeError:Object不支持属性或方法'finally'

时间:2018-04-30 07:42:49

标签: javascript angularjs ecmascript-6 es6-promise

我正在使用带有gulp和es6 promise的angular 1.6,它具有class Head extends Component{ constructor(){ super(); this.state = { buttonId: null } this.setButton = this.setButton.bind(this); } setButton(id){ this.setState({buttonId: id}); } render(){ if(this.state.buttonId == 1){ <Comic/> } else if(this.state.buttonId == 2){ <Contest/> } else { <Comic/> } return( <div> <input className={this.state.buttonId === 1? "button1 orange" : "button1"} onClick={() => this.setButton(1)} value="Comic" type="button" ref="button" /> <input className={this.state.buttonId === 2? "button2 orange" : "button2"} onClick={() => this.setButton(2)} value="Contest" ref="button1" type="button" /> </div> ); } } export default Head; 块,除了IE Edge和IE 11之外,它的工作正常。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

更多信息:

在用于 Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,如Gecko)的Edge devtools中: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的polyfill)。

但是后来我发现我的应用无法在Edge中运行。

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

现在,我已切换到Bluebird来同时填充IE 11和Edge。