#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