Rumah >hujung hadapan web >tutorial js >Adakah '.then(function(a){ return a; })' Perlu dalam Promise Chains?

Adakah '.then(function(a){ return a; })' Perlu dalam Promise Chains?

Linda Hamilton
Linda Hamiltonasal
2024-11-16 00:08:02573semak imbas

Is

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:

  • Kesilapan: Ada kemungkinan penulis hanya tersilap atau tersalah faham maksud janji.
  • Kurang Kefahaman: Penulis mungkin tersilap percaya bahawa setiap janji memerlukan fungsi "kemudian", walaupun ia tidak berfungsi apa-apa sahaja.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn