Тема: catch и then
Показать сообщение отдельно
  #2 (permalink)  
Старый 27.07.2021, 21:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от fxobject
Причем, если поменять местами :
this.readServerInfo( options )
.then( function( result ){ ..... })
.catch( function( errorMessage ){ .... })
то then уже не срабатывает.
Так и должно быть?
При перемене мест слагаемых сумма меняться не должна.
Вот пример
let promise = new Promise(function(resolve, reject) {
	setTimeout(() => reject(new Error("Whoops!")), 1000);
});
promise.then(
  result => alert(result), // не будет запущена
  error => alert(error + ' из then') // выведет "Error: Whoops!" спустя одну секунду
);
promise.catch(err => alert(err + ' из catch'))

Сколько их местами не меняй - выполнятся "оба".
Точнее выполнится вторая функция из then, ну и конечно функция из catch.

Т.е. так, как написано в букваре
https://learn.javascript.ru/promise-...-catch-finally
Цитата:
Если мы хотели бы только обработать ошибку, то можно использовать null в качестве первого аргумента: .then(null, errorHandlingFunction). Или можно воспользоваться методом .catch(errorHandlingFunction), который сделает тоже самое
Ответить с цитированием