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.