📅  最后修改于: 2020-10-26 03:33:30             🧑  作者: Mango
现实生活中的承诺表达了两个或更多人之间的信任,并保证一定会发生某件事。在javascript中,Promise是一个对象,可确保将来(需要时)产生单个值。 javascript中的Promise用于管理和处理异步操作。
到目前为止,我们了解了事件和用于处理数据的回调函数。但是,其范围是有限的。这是因为事件无法管理和操作异步操作。因此,Promise是有效处理异步操作的最简单,更好的方法。
Promise和事件处理程序之间可能存在两个差异:
承诺可以处于以下状态之一:
因此,promise表示异步操作及其结果的完成。它可以是成功完成承诺,也可以是失败,但最终可以完成。 Promise使用then(),然后仅在promise解析完成后才执行。
JavaScript Promise承诺:
Promise的功能几乎可以在所有流行的Web浏览器上执行,例如Chrome,Mozilla,Opera等。方法列表为:
Method Name | Summary |
---|---|
Promise.resolve(promise) | This method returns promise only if promise.constructor==Promise. |
Promise.resolve(thenable) | Makes a new promise from thenable containing then(). |
Promise.resolve(obj) | Makes a promise resolved for an object. |
Promise.reject(obj) | Makes a promise rejection for the object. |
Promise.all(array) | Makes a promise resolved when each item in an array is fulfilled or rejects when items in the array are not fulfilled. |
Promise.race(array) | If any item in the array is fulfilled as soon, it resolves the promise, or if any item is rejected as soon, it rejects the promise. |
new Promise(function(resolve, reject){}); | Here, resolve(thenable) denotes that the promise will be resolved with then(). Resolve(obj) denotes promise will be fulfilled with the object Reject(obj) denotes promise rejected with the object. |
Javascript Promise
在以上Promise实现中,Promise构造函数采用一个参数来回调函数。该回调函数有两个参数,即
这意味着将调用“解决”或“拒绝”。在这里,then()接受了一个参数,如果诺言得以解决,它将执行。否则,catch()将在拒绝promise时被调用。