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

Linda Hamilton
Lepaskan: 2024-11-16 00:08:02
asal
491 orang telah melayarinya

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;
    });
};
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan