Heim > Web-Frontend > js-Tutorial > JavaScript verwendet Promise-Objekte, um asynchrone Programmierkenntnisse zu implementieren

JavaScript verwendet Promise-Objekte, um asynchrone Programmierkenntnisse zu implementieren

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-05-16 15:12:35
Original
1214 Leute haben es durchsucht

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

  }
});

Nach dem Login kopieren

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');
});
Nach dem Login kopieren

Ausführungsergebnis eins:

begin do something
 run success
 resolve from promise
Nach dem Login kopieren

Ausführungsergebnis zwei:

begin do something
 run failed
 reject from promise
Nach dem Login kopieren

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

Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage