【Verwandte Lernempfehlungen: Javascript-Video-Tutorial】
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:
Schritt-für-Schritt-Anleitung zur Implementierung von Promise
rrreeeausstehend : 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!