您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

深入了解JavaScript Promise

51自学网 2022-02-21 13:35:02
  javascript

一 什么是 Promise?

一个 Promise 对象就像容器一样,在容器中写着一段执行具体操作的代码,并且在这段代码执行结束后,会执行两个回调函数,一个是操作成功的回调函数(resolve),一个是操作失败的回调函数(reject)

二 为什么有 Promise?

Promise 的出现是为了解决异步编程中,主要使用的回调机制的几个问题:

  • Callback hell

Callback hell:Promise 可以把一层层嵌套的 callback 变成 .then().then()…,从而使代码编写和阅读更直观

  • 错误处理难:Promise 比 callback 在错误处理上更清晰直观
  • 同时进行多个异步操作的代码编写困难:Promise 可以简单处理此情况

三 Promise常用api

  • .then() promise中方法执行完以后,可以执行,里面有两个参数,分别是成功的回调函数和失败的回调函数。
  • resolve 使用 promise.resolve 方法可以快速的返回一个promise对象
  • reject 使用 promise.reject 方法可以快速的返回一个promise对象
  • all 同时执行多个并行异步操作。

四 Promise常用的两个用法

1 如何解决 callback hell?

.then()没有返回值的函数,会使得 Promise 链不再延续,此时你再往后面调用 .then() 是没有作用的。

Promise.resolve('foo').then(function(s) {  console.log(s);}).then(function(s) {  // Never executed  console.log(s);});

.then()中有返回值函数,会使 Promise 链可以继续

Promise.resolve('foo').then(function(s) {  console.log(s);  return s + 'bar';}).then(function(s) {  console.log(s);});// foo// foobar

.then()有返回值且返回值为另一个 Promise 对象的函数,也会使 Promise 继续
下载地址:
Json优缺点及使用介绍
JavaScript

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。