Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Node.js secara sinkron mengulang atau mengulangi pernyataan asinkron

Dengan rekursi kodenya cukup bersih. Tunggu respons http untuk kembali kemudian jalankan upaya berikutnya. Ini akan bekerja di semua versi node.

var urls = ['http://stackoverflow.com/', 'http://security.stackexchange.com/', 'http://unix.stackexchange.com/'];

var processItems = function(x){
  if( x < urls.length ) {
    http.get(urls[x], function(res) {

      // add some code here to process the response

      processItems(x+1);
    });
  }
};

processItems(0);

Solusi menggunakan janji juga akan bekerja dengan baik, dan lebih singkat. Misalnya, jika Anda memiliki versi get yang mengembalikan janji dan Node v7.6+, Anda dapat menulis fungsi async/await seperti contoh ini, yang menggunakan beberapa fitur JS baru.

const urls = ['http://stackoverflow.com/', 'http://security.stackexchange.com/', 'http://unix.stackexchange.com/'];

async function processItems(urls){
  for(const url of urls) {
    const response = await promisifiedHttpGet(url);    
    // add some code here to process the response.
  }
};

processItems(urls);

Catatan:kedua contoh ini mengabaikan penanganan kesalahan, tetapi Anda mungkin harus memilikinya di aplikasi produksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus Kueri Untuk Menghapus Baris di MySQL

  2. Mengapa Java tidak dapat terhubung ke MySQL 5.7 setelah pembaruan JDK terbaru dan bagaimana cara memperbaikinya? (ssl.SSLHandshakeException:Tidak ada protokol yang sesuai)

  3. Apa arti dari <> dalam kueri mysql?

  4. Pembuat kueri tidak memasukkan stempel waktu

  5. kelompokkan berdasarkan kemunculan pertama dan terakhir