Bagaimana perulangan While ini berakhir? - Kode Node

Halo, Saat ini saya menggunakan situs web 'Codeschool.com' dan menurut saya kode instruktur memiliki loop tak terbatas dalam kode Node/Javascript mereka, tetapi saya tidak yakin.

Ini kodenya:

http.createServer(function(request, response) {
  response.writeHead(200);
  request.on('readable', function () {
    var chunk = null;
    while( null !==(chunk = request.read())) {
      response.write(chunk);
    }
  });
  request.on('end', function() {
    response.end();
  });
}).listen(8080)

Instruktur mengatakan bahwa kode ini mirip dengan menggunakan request.pipe(response);

Saya memahami konsepnya, tetapi apa yang membuat saya bingung (tidak ada kata-kata yang dimaksudkan) adalah loop sementara ini, bagaimana ini bisa berakhir?


person Bail3y    schedule 06.04.2017    source sumber
comment
Ketika request.read() menugaskan null ke chunk, kondisinya gagal dan berhenti karena sekarang menjadi === null.   -  person    schedule 06.04.2017


Jawaban (1)


request.read() mengembalikan sepotong data yang tersedia setiap kali dipanggil, hingga tidak ada lagi data yang dikembalikan, dalam hal ini ia mengembalikan null.

Pada titik tersebut, chunk juga sama dengan null dan karena penugasan adalah ekspresi yang mengembalikan nilai yang ditetapkan, kondisinya salah dan karenanya perulangan while berakhir:

while ( null !== (chunk = null) ) { ... }

person jotaelesalinas    schedule 06.04.2017