Rumah >hujung hadapan web >tutorial js >JavaScript menggunakan objek Promise untuk melaksanakan kemahiran programming_javascript asynchronous
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