Rumah >hujung hadapan web >tutorial js >JavaScript menggunakan objek Promise untuk melaksanakan kemahiran programming_javascript asynchronous

JavaScript menggunakan objek Promise untuk melaksanakan kemahiran programming_javascript asynchronous

WBOY
WBOYasal
2016-05-16 15:12:351174semak imbas

Objek Promise ialah antara muka bersatu yang disediakan oleh kumpulan kerja CommonJS untuk pengaturcaraan tak segerak. Ia adalah sokongan asli untuk Promise yang disediakan dalam ECMAScript6 yang akan berlaku pada masa hadapan dan juga menyediakan Spesifikasi menjadikannya lebih mudah untuk mengawal operasi tak segerak. Menyediakan kaedah seperti tolak, selesaikan, kemudian dan tangkap.

Guna PROMISE

Promise ialah objek asli selepas ES6 Kami hanya perlu membuat instantiat objek Promise untuk menggunakannya secara langsung.
Janji Segera:

var promise = new Promise(function (resolve, reject) {
  console.log('begin do something');
  if (Math.random() * 10.0 > 5) {
    console.log(" run success");
    resolve();
  } else {
    console.log(" run failed");
    reject();

  }
});

Fungsi kaedah panggil balik (selesai, tolak) ditakrifkan di sini. Jika berjaya, penyelesaian akan dipanggil Jika gagal, tolak akan dipanggil.
Promise.prototype.then ialah panggilan balik selepas Promise dilaksanakan Anda boleh menggunakan kaedah kemudian untuk menentukan panggilan balik menyelesaikan dan menolak masing-masing.

promise.then(function () {
  console.log(' resolve from promise');
}, function () {
  console.log(' reject from promise');
});

Hasil pelaksanaan satu:

begin do something
 run success
 resolve from promise

Hasil pelaksanaan dua:

begin do something
 run failed
 reject from promise

Gunakan PROMISE untuk permintaan rangkaian

getRequest = function (url) {
  var promise = new Promise(function (resolve, reject) {
    var request = require('request');
    request(url, function (error, respones, body) {
      if (error) {
        reject(error);
        return;
      }
      if (respones.statusCode == 200) {
        resolve(body)

      } else {
        reject(respones.status);

      }
    });
  });
  return promise;

};

getRequest("https://github.com/").then(function (result) {
  console.log(result);
}, function (error) {
  console.error('error', error);
});

Gunakan Promise untuk membuat permintaan rangkaian, dan anda juga boleh menggunakan Promise untuk melaksanakan permintaan Ajax semasa menyemak imbas.

Alamat kod: https://github.com/jjz/node

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