Cordova поддерживает наконец метод? - PullRequest
0 голосов
/ 02 сентября 2018

Я не могу понять, почему этот код не работает:

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)
  })

В браузере все отлично работает, но я запускаю эмулятор, не работает 'test 3'

Сначала я подумал, что может быть из-за тревоги не работает. Но нет. Если вы добавите в улов больше предупреждений, они будут нормально работать

В общем, у меня есть 2 гипотезы:

1) Cordova не поддерживает finally

2) Я не понимаю, что происходит, и совершаю где-то ошибку

Так где же правда?

1 Ответ

0 голосов
/ 05 сентября 2018

Promise.prototype.finally равно в настоящее время на стадии 4 процесса tc39. Этап 4 означает, что он закончен и безопасен для использования , если ваш браузер поддерживает его . Он будет включен в следующую версию стандарта ECMAScript .

Вы можете найти текущую поддержку браузера здесь . Поэтому, если вы тестируете на своем Android-устройстве (или эмуляторе), вам нужен Chrome 63 (или выше). Я предполагаю, что у вас есть более старая версия (возможно, вы используете пешеходный переход).

У вас есть два варианта:

  • Используйте транспортер (Typescript, Babel и т. Д.), Чтобы перенести JS на более старый стандарт (например, ES2015), который поддерживается вашим телефоном
  • Используйте обходной путь, подобный this one
...