我不明白为什么该代码不起作用:
this.doMagic() // <- there is a Promise which do 'reject'
.then(_ => {
alert('test 1') // <- this is not working (OK)
})
.catch(_ => {
alert('test 2') // <- it is working (OK)
})
.finally(_ => {
alert('test 3') // <- it is not working (NOT OK)
})
在浏览器中,一切正常,但我启动了模拟器,“测试3”不起作用
起初,我认为可能是因为警报不起作用。但不是。如果您添加了更多警报,它们将正常工作
通常,我有2个假设:
1)科尔多瓦不支持finally
2)我不知道发生了什么,并在某个地方犯了错误
那么,哪里是真的?
答案 0 :(得分:0)
Promise.prototype.finally
是tc39进程的currently at stage 4。第4阶段表示如果您的浏览器支持,则可以安全使用它。它将包含在next version of the ECMAScript standard中。
您可以找到当前的浏览器支持here。因此,如果您要在Android设备(或仿真器)上进行测试,则需要Chrome 63(或更高版本)。我的猜测是您有一个较旧的版本(也许您正在使用人行横道)。
您有两个选择: