个性化阅读
专注于IT技术分析

JavaScript的承诺Promise

点击下载

本文概要

在现实生活中的承诺表达两个或两个以上的人,并保证,特定的事情一定会发生之间的信任。在JavaScript中,一个Promise是一个对象,它可确保(当需要时)在未来以产生单个值。承诺在JavaScript用于管理和解决异步操作。

需要JavaScript的承诺

到现在为止,我们了解事件和回调函数来处理数据。但是,它的范围是有限的。这是因为事件是无法管理和操作异步操作。因此,承诺是有效地处理异步操作最简单,更好的方法。

有承诺和事件处理程序之间有两个可能的不同:

  1. 一个承诺决不会失败或成功,两次或更多次。这只能发生一次。
  2. 承诺可以从成功到失败,或未能成功切换没有。如果已承诺无论成功或失败,和一段时间后,如果添加任何成功/失败的回调,正确的回调将被调用,不管事件发生的更早。

Promise的术语

一诺可在下列状态中的一种存在:

  1. 挂起:挂起的承诺既不拒绝,也不尚未完成。
  2. 完成:在相关承诺行动圆满完成。
  3. 拒绝:相关承诺的行动未能兑现。
  4. 解决:要么行动履行或拒绝。

因此,一个承诺表示其结果的异步操作的完成。它可以是承诺要么成功完成,或未能,但最终完成。Promise采用然后只承诺决心完成后执行()。

承诺的承诺

一个JavaScript承诺承诺是:

  1. 除非JS事件循环的当前执行的未完成(成功或失败),回调将永远不会被以前叫。
  2. 即使有那么()的回调都存在,但他们只会完全异步操作的执行后调用。
  3. 当多个回调可以通过调用然后()多次被包括,他们每个人都会在一个链来执行,即,一个在另一个之后,以下它们被插入的序列。

在Promise方法

承诺的功能是可执行的,几乎在每一个趋势的Web浏览器,如浏览器,Mozilla,Opera等的方法列表:

方法名称摘要
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构造函数采用的是回调函数的参数。这个回调函数有两个参数,即,

  1. 解析:当成功执行的承诺,决心参数调用,它提供的结果。
  2. 拒绝:当许被拒绝时,拒绝参数被调用时,其将导致一个错误。

这意味着要么解决被称为或拒绝被调用。在这里,那么()已采取一个参数,它会执行,如果承诺得到解决。否则,赶上()将拒绝承诺的调用。

使用承诺的优点

  1. 一个更好的选择来处理异步操作。
  2. 提供了方便的错误处理和更好的代码的可读性。

赞(0)
未经允许不得转载:srcmini » JavaScript的承诺Promise

评论 抢沙发

评论前必须登录!