本文概要
- 需要JavaScript的承诺
- 承诺的术语
- 承诺的承诺
- 在Promise方法
- 构造函数承诺
- 实现承诺
- 使用承诺的优点
需要JavaScript的承诺到现在为止,我们了解事件和回调函数来处理数据。但是,它的范围是有限的。这是因为事件是无法管理和操作异步操作。因此,承诺是有效地处理异步操作最简单,更好的方法。
有承诺和事件处理程序之间有两个可能的不同:
- 一个承诺决不会失败或成功,两次或更多次。这只能发生一次。
- 承诺可以从成功到失败,或未能成功切换没有。如果已承诺无论成功或失败,和一段时间后,如果添加任何成功/失败的回调,正确的回调将被调用,不管事件发生的更早。
- 挂起:挂起的承诺既不拒绝,也不尚未完成。
- 完成:在相关承诺行动圆满完成。
- 拒绝:相关承诺的行动未能兑现。
- 解决:要么行动履行或拒绝。
承诺的承诺一个JavaScript承诺承诺是:
- 除非JS事件循环的当前执行的未完成(成功或失败),回调将永远不会被以前叫。
- 即使有那么()的回调都存在,但他们只会完全异步操作的执行后调用。
- 当多个回调可以通过调用然后()多次被包括,他们每个人都会在一个链来执行,即,一个在另一个之后,以下它们被插入的序列。
方法名称 | 摘要 |
---|---|
Promise.resolve(promise) | 这个方法只有在promise.constructor== promise时才返回promise。 |
Promise.resolve(thenable) | 对包含then()的thenable进行新的承诺。 |
Promise.resolve(obj) | 使解决的对象的承诺。 |
Promise.reject(obj) | 做出拒绝的承诺。 |
Promise.all(数组) | 在数组中的每个项都已完成时解析承诺,或在数组中的项未完成时拒绝承诺。 |
Promise.race(array) | 如果阵列中的任何一项得到满足,尽快,它解决的承诺,或者如果发现任何项目,一旦被拒绝,就拒绝承诺。 |
new Promise(function(resolve,reject){}); | 这里,resolve(thenable)表示使用then()解析承诺。 解析(obj)表示承诺将通过对象实现 Reject(obj)表示被对象拒绝的承诺。 |
<
html>
<
head>
<
h2> Javascript Promise<
/h2>
<
/br> <
/head>
<
body>
<
script>
var p=new Promise(function(resolve,reject){
var x= 2+3;
if(x==5)
resolve(" executed and resolved successfully");
else
reject("rejected");
});
p.then(function(fromResolve){
document.write("Promise is"+fromResolve);
}).catch(function(fromReject){
document.write("Promise is "+fromReject);
});
<
/script>
<
/body>
<
/html>
在上述承诺的实现,Promise构造函数采用的是回调函数的参数。这个回调函数有两个参数,即,
- 解析:当成功执行的承诺,决心参数调用,它提供的结果。
- 拒绝:当许被拒绝时,拒绝参数被调用时,其将导致一个错误。
使用承诺的优点
- 一个更好的选择来处理异步操作。
- 提供了方便的错误处理和更好的代码的可读性。
推荐阅读
- JavaScript的TypedArray
- JavaScript的Cookie有多个名称
- JavaScript的OOPS构造方法
- JavaScript的cookie的属性
- JavaScript的OOPS继承 – JavaScript教程 – srcmini
- JavaScript的OOPS封装
- JavaScript的OOPS原型对象
- JavaScript的严格模式
- JavaScript的提升