#author("2022-05-13T13:45:45+08:00","default:Admin","Admin")
#author("2022-07-14T17:24:24+08:00","default:Admin","Admin")
[[Vue]]

&color(red){※前提条件:本文基于 Vue 2.0 创作};
#contents

* 概要 [#a0801cc1]

Promise是异步编程的一种解决方法,就拿传统的ajax发请求来说,单个还好,如果是一个请求回来的数据还要被其他请求调用,不断地嵌套,可想而知,代码看起来是很乱的,promise主要是为了解决这种情景而出现的。

Promise是一个构造函数,所以可以 new 出一个Promise的实例;Promise创建的实例,是一个&color(red){异步操作};
- 在Promise上有两个函数 resolve (成功之后的回调函数)和 reject (失败后的回调函数);
- 在Promise构造函数的prototype属性上,有一个 .then() 方法。

Promise的异步操作结果,只有两种结果:
- 状态1:异步执行 成功,需要在内部调用成功的回调函数resolve把结果返回给调用者。&color(red){resolve —>对应then};
- 状态2:异步执行 失败,需要在内部调用失败的回调函数reject把结果返回调用者。&color(red){reject —>对应catch};
只有调用了resolve 或者reject 才会触发 then 和 catch


#codeprettify{{
increment (context) {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          reject(new Error('2222222'))
        }, 1000)
      })
    }
}}


#hr();
コメント:
#comment_kcaptcha

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS