Merangkai Janji: Memahami ".then(function(a){ return a; })"
Apabila bekerja dengan rantai janji, ia adalah biasa menemui kenyataan seperti ".then(function(a){ return a; })". Sintaks ini muncul dalam kod:
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
Timbul persoalan: adakah fungsi ini berfungsi sama dengan mengembalikan fetch() secara langsung, tanpa tambahan ".then()"?
Jawapannya: A No-Op
Ya. ".then(function(a){ return a; })" berkesan tanpa operasi (no-op) untuk janji. Ia mengembalikan janji yang sama, bertindak dengan cara yang sama dan boleh dipanggil secara setara.
Penalaran:
Janji digunakan untuk mewakili operasi tak segerak. Apabila janji diselesaikan, ia menyerahkan hasilnya kepada janji seterusnya dalam rantaian melalui fungsi "kemudian". Walau bagaimanapun, apabila fungsi "maka" hanya mengembalikan input, ia tidak menambah apa-apa nilai pada rantai.
Mengapa Pengarang Mungkin Telah Menggunakannya:
The kemasukan ".then()" yang kelihatan berlebihan mungkin dikaitkan dengan salah satu daripada dua sebab:
Ikhtisar:
Dalam kebanyakan kes, ".then(function(a){ return a; })" adalah tidak perlu dan boleh ditinggalkan tanpa menjejaskan tingkah laku yang diingini. Ia adalah pemegang tempat yang tidak mempunyai tujuan dan harus dialih keluar untuk kejelasan kod yang lebih baik.
Atas ialah kandungan terperinci Adakah '.then(function(a){ return a; })' Perlu dalam Promise Chains?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!