Heim >Web-Frontend >js-Tutorial >JavaScript verwendet Promise-Objekte, um asynchrone Programmierkenntnisse zu implementieren
Das Promise-Objekt ist eine einheitliche Schnittstelle, die von der CommonJS-Arbeitsgruppe für die asynchrone Programmierung bereitgestellt wird. Durch die Verwendung von Promise kann in Zukunft eine Verschachtelung von Callback-Funktionen vermieden werden Außerdem bietet die Spezifikation eine einfachere Steuerung asynchroner Vorgänge. Stellt Methoden wie „Reject“, „Resolve“, „Then“ und „Catch“ bereit.
Verwenden Sie PROMISE
Promise ist ein natives Objekt nach ES6. Wir müssen das Promise-Objekt nur instanziieren, um es direkt zu verwenden.
Versprechen instanziieren:
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(); } });
Eine Callback-Methodenfunktion (resolve,reject) wird hier definiert. Wenn sie erfolgreich ist, wird „resolve“ aufgerufen. Wenn sie fehlschlägt, wird „reject“ aufgerufen.
Promise.prototype.then ist der Rückruf nach der Ausführung von Promise. Mit der Methode then können Sie die Rückrufe „resolve“ bzw. „reject“ angeben.
promise.then(function () { console.log(' resolve from promise'); }, function () { console.log(' reject from promise'); });
Ausführungsergebnis eins:
begin do something run success resolve from promise
Ausführungsergebnis zwei:
begin do something run failed reject from promise
Verwenden Sie PROMISE für Netzwerkanfragen
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); });
Verwenden Sie Promise, um Netzwerkanfragen zu stellen, und Sie können Promise auch verwenden, um Ajax-Anfragen beim Surfen zu implementieren.
Codeadresse: https://github.com/jjz/node