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

JavaScript verwendet Promise-Objekte, um asynchrone Programmierkenntnisse zu implementieren

WBOY
WBOYOriginal
2016-05-16 15:12:351175Durchsuche

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

Stellungnahme:
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