$ q замена для .when () и .finally () - PullRequest
0 голосов
/ 11 декабря 2018

Я перевожу AngularJS в Angular

Пытаюсь заменить $ q на Promise

У меня есть

$q.when(btn.onClick()).finally(test => {
    // code
})

Я заменил его на приведенный ниже код и не уверенесли это точная замена.

Promise.resolve(btn.onClick()).then(test => {
    // code
})

С $ q.when () Я вижу, мы можем использовать .resolve() для .when()

, но что является заменой для .finally ()

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Начните с привязки щелчка кнопки шаблона компонента к логике вашего шаблона

<button (click)="onClick()">Click</button>
onClick() {}

Затем вы можете использовать Promise.all для нескольких обещаний или .then дляодно обещание.

Хотя, если я могу предположить, во время миграции вы должны рассмотреть возможность использования Observables, поскольку они намного более мощные, чем обещания и изначально интегрированы с Angular.

Вот один из моих предыдущих ответов , чтобы быстро начать работу с Observables.

0 голосов
/ 11 декабря 2018

Поскольку вы упоминаете, что мигрируете, использование observables предпочтительнее, чем возможно, с использованием обещаний.Из документации:

Вы можете часто использовать наблюдаемые вместо обещаний для доставки значений асинхронно.Точно так же наблюдаемые могут заменять обработчики событий.Наконец, поскольку наблюдаемые предоставляют несколько значений, вы можете использовать их там, где в противном случае могли бы строить и работать с массивами.API обещания можно найти здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally

0 голосов
/ 11 декабря 2018

// понял, что это не вопрос.Боже мой!

Вы можете использовать

.then(function(){
})

столько раз, сколько хотите, в моем знании нет истинной замены finally()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...