JavaScript的承诺Promise

本文概要

  • 需要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. 拒绝:当许被拒绝时,拒绝参数被调用时,其将导致一个错误。
【JavaScript的承诺Promise】这意味着要么解决被称为或拒绝被调用。在这里,那么()已采取一个参数,它会执行,如果承诺得到解决。否则,赶上()将拒绝承诺的调用。
使用承诺的优点
  1. 一个更好的选择来处理异步操作。
  2. 提供了方便的错误处理和更好的代码的可读性。

    推荐阅读