TGViewer
As For JS As For JS @asforjavascript · 3.07K subscribers
Post #601 2.93K
As For JS В чем существенная разница между кодом: promise.resolve().then( ( theVal ) => { /* якись код */ } , (theVal) => { /* якись код */ } ); и promise.resolve().then( ( theVal ) => { /* якись код */ } ).catch( ( theVal ) => { /* якись код */…
Отгадка.

Разница в том, какой именно результат обслуживает catch.
В предложенном коде:
promise.resolve().then( 
( theVal ) => { /* якись код */ }
).catch(
( theVal ) => { /* якись код */ }
);

callback из catch обслуживает то, что вернет callback из предшествующего then. А это может быть что угодно - как resolved так и rejected promise так и pending promise.


В отличии от кода без catch:
promise.resolve().then( 
( theVal ) => { /* якись код */ }
, (theVal) => { /* якись код */ }
);

где реакция описанного в нем callback на rejected происходит по результату предшествующего ему кода (в нашем примере это результат работы resolve)


Иными словами, чтобы привести оба кода к состоянию когда они были бы эквивалентными по своей логике, следовало бы, для случая catch написать вот так:
var thePromise = promise.resolve();

thePromise.then(
( theVal ) => { /* якись код */ }
);

thePromise.catch(
( theVal ) => { /* якись код */ }
);



Почему это может быть для Вас важно.
1) Всегда следует помнить, что методы связанные с Promise совершают большую работу по формированию нового Object Promise. Эта работа много больше чем формирование обычного обьекта.

2) Методы принимают в качестве аргументов и возвращают в качестве результата ЛЮБЫЕ значения, от типа которых прямо зависит то, что происходит дальше.

Например
В следующем примере:
Promise.resolve().then( 
()=>{}
, ()=>{}
).catch(
()=>console.log('Rejected')
);

catch будет вызван только в случае если один из callback-ов описанных в then уровнем выше, вернет Promise.reject. Причем совершенно неважно будет это collback для resolved или rejected.
  • 👍 16
  • ❤ 7
  • 🔥 6
  • 👀 1
More from @asforjavascript
  1. Oct 14, 2026Кому нечем заняться и хочется подумать. Как, согласно современному HTML5 должна быть разоб…
  2. Oct 14, 2026https://music.youtube.com/watch?v=y7TOV4AvKJs&si=QbHucJbQ2swJi-0G
  3. Oct 13, 2026Тимур Шемсединов раскопал в записях еще один эфир второго в мире JS радио. Было это недели…
  4. Oct 11, 2026Гениальный Кирилл Львович Масленников о темной материи полтора часа кайфа https://youtu.be…
  5. Oct 10, 2026Два дня назад, в возрасте 90 лет умерла Маргарет Гамильтон. В один из критических моментов…
  6. Oct 9, 2026Какие несоответствия тексту песни, вы видите в клипе? Я нашел пока три. https://www.youtub…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →