kembali ke pelajaran

Promise: then versus catch

Apakah potongan kode ini sama? Dengan kata lain, apakah mereka berperilaku sama dalam situasai apapun, untuk setiap handler functions?

promise.then(f1).catch(f2);

Versus:

promise.then(f1, f2);

Jawaban singkatnya adalah: tidak, mereka tidak sama:

Perbedaannya adalah bahwa jika terjadi sebuah error di dalam f1, kemudian ditangani oleh .catch disini:

promise.then(f1).catch(f2);

…Tetapi bukan disini:

promise.then(f1, f2);

Itulah kenapa sebuah error diturunkan ke chain, dan didalam bagian kode kedua disana tidak ada chain dibawah f1.

Dengan kata lain, .then meneruskan result/error ke .then/catch selanjutnya. Jadi pada contoh pertama, ada sebuah catch di bawah, dan yang kedua – disana tidak ada, jadi error tidak ditangani.