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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-05-16 15:12:35
asal
1220 orang telah melayarinya

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();

  }
});

Salin selepas log masuk

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

Hasil pelaksanaan satu:

begin do something
 run success
 resolve from promise
Salin selepas log masuk

Hasil pelaksanaan dua:

begin do something
 run failed
 reject from promise
Salin selepas log masuk

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);
});

Salin selepas log masuk

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

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan