Heim >Web-Frontend >js-Tutorial >Schritt-für-Schritt-Anleitung zur Implementierung von Promise

Schritt-für-Schritt-Anleitung zur Implementierung von Promise

coldplay.xixi
coldplay.xixinach vorne
2020-09-02 17:22:461671Durchsuche

Schritt-für-Schritt-Anleitung zur Implementierung von Promise

【Verwandte Lernempfehlungen: Javascript-Video-Tutorial

Vorwort

Viele JavaScript-Anfänger haben die Angst erlebt, von der Callback-Hölle dominiert zu werden, und sie werden nicht erleichtert, bis sie das Versprechen beherrschen Syntax. Obwohl viele Sprachen bereits über integriertes Promise verfügen, ist die eigentliche Förderung davon in JavaScript die Rekonstruktion von $.ajax durch jQuery 1.5, das Promise unterstützt, und seine Verwendung unterscheidet sich von der Von jQuery befürworteter Kettenaufruf. Später, als ES6 geboren wurde, trat jeder in die Ära des universellen Versprechens ein. Später führte ES8 die asynchrone Syntax ein, um das asynchrone Schreiben von JavaScript eleganter zu gestalten. $.ajax 的重构,支持了 Promise,而且用法也和 jQuery 推崇的链式调用不谋而合。后来 ES6 出世,大家才开始进入全民 Promise 的时代,再后来 ES8 又引入了 async 语法,让 JavaScript 的异步写法更加优雅。

今天我们就一步一步来实现一个 Promise,如果你还没有用过 Promise,建议先熟悉一下 Promise 语法再来阅读本文。

构造函数

在已有的 Promise/A+ 规范中并没有规定 promise 对象从何而来,在 jQuery 中通过调用 $.Deferred() 得到 promise 对象,ES6 中通过实例化 Promise 类得到 promise 对象。这里我们使用 ES 的语法,构造一个类,通过实例化的方式返回 promise 对象,由于 Promise 已经存在,我们暂时给这个类取名为 Deferred

class Deferred {  constructor(callback) {    const resolve = () => {      // TODO
    }    const reject = () => {      // TODO
    }    try {
      callback(resolve, reject)
    } catch (error) {
      reject(error)
    }
  }
}复制代码

构造函数接受一个 callback,调用 callback 的时候需传入 resolve、reject 两个方法。

Promise 的Schritt-für-Schritt-Anleitung zur Implementierung von Promise

Promise 一共分为三个Schritt-für-Schritt-Anleitung zur Implementierung von Promise:

Schritt-für-Schritt-Anleitung zur Implementierung von Promise
  • Schritt-für-Schritt-Anleitung zur Implementierung von Promise
    Heute werden wir Schritt für Schritt ein Promise implementieren. Wenn Sie Promise noch nicht verwendet haben, wird empfohlen, sich mit der Promise-Syntax vertraut zu machen, bevor Sie diesen Artikel lesen. Schritt-für-Schritt-Anleitung zur Implementierung von Promise

    Konstruktor
    vorhanden Die Promise/A+-Spezifikation legt nicht fest, woher das Promise-Objekt kommt. In jQuery wird das Promise-Objekt durch Aufruf von $.Deferred() erhalten, und in ES6 Die Promise-Klasse wird instanziiert. Hier verwenden wir die ES-Syntax, um eine Klasse zu erstellen und das Promise-Objekt durch Instanziierung zurückzugeben. Da Promise bereits existiert, nennen wir diese Klasse vorübergehend Deferred.

    rrreee
  • Der Konstruktor akzeptiert einen Rückruf. Beim Aufruf eines Rückrufs müssen Sie zwei Methoden übergeben: auflösen und ablehnen.
  • Schritt-für-Schritt-Anleitung zur Implementierung von Promise of Promise

  • Promise ist in drei Zustände unterteilt:
🎜Schritt-für-Schritt-Anleitung zur Implementierung von Promise🎜🎜🎜
    🎜⏳ausstehend : Warten, das ist der Anfangszustand von Promise;

Das obige ist der detaillierte Inhalt vonSchritt-für-Schritt-Anleitung zur Implementierung von Promise. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen