Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengelak Janji Bersarang dan Meningkatkan Kebolehbacaan Kod dalam Node.js?

Bagaimanakah Saya Boleh Mengelak Janji Bersarang dan Meningkatkan Kebolehbacaan Kod dalam Node.js?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 18:10:45251semak imbas

How Can I Avoid Nested Promises and Improve Code Readability in Node.js?

Merungkai Janji Bersarang

Apabila bekerja dengan kod rangkaian dalam NodeJS dan menggunakan janji, adalah perkara biasa untuk menemui janji bersarang. Walaupun struktur ini mungkin diperlukan pada masa-masa tertentu, ia juga boleh membawa kepada kod yang bersepah dan tidak boleh dibaca. Pendekatan yang lebih bersih dan cekap ialah merantai janji dan bukannya bersarang.

Masalah Janji Bersarang

Pertimbangkan contoh berikut:

exports.viewFile = function(req, res) {
  var fileId = req.params.id;
  boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken)
    .then(function(response) {
        boxViewerRequest('documents', {url: response.request.href}, 'POST')
            .then(function(response) {
                boxViewerRequest('sessions', {document_id: response.body.id}, 'POST')
                    .then(function(response) {
                        console.log(response);
                    });
            });
    });
};

Coretan kod ini membuat tiga permintaan API secara bersiri, menggunakan janji bersarang. Walaupun ia berfungsi dengan betul, ia kelihatan berantakan dan sukar untuk diikuti.

Merangkai Janji Sebaliknya

Untuk merangkai janji dan bukannya bersarang, ubah suai panggilan balik kemudian untuk mengembalikan yang seterusnya janji:

exports.viewFile = function(req, res) {
    var fileId = req.params.id;
    boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken)
      .then(function(response) {
          return boxViewerRequest('documents', {url: response.request.href}, 'POST');
      })
      .then(function(response) {
          return boxViewerRequest('sessions', {document_id: response.body.id}, 'POST');
      })
      .then(function(response) {
          console.log(response);
      });
};

Sekarang, masing-masing kemudian panggil balik mengembalikan janji berikutnya, berkesan "mengikat" mereka bersama-sama. Nilai yang diselesaikan daripada setiap janji kemudiannya tersedia sebagai hujah kepada yang seterusnya kemudian panggil balik dalam urutan.

Dengan menggunakan teknik ini, anda boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda, terutamanya apabila bekerja dengan berbilang permintaan API .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Janji Bersarang dan Meningkatkan Kebolehbacaan Kod dalam Node.js?. 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