Promise基本用法
1. Promise 基本用法
- 实例化
Promise对象, 构造函数中传递函数,该函数中用于处理异步任务 - 通过
resolve和reject两个参数用于处理成功和失败的两种情况,并通过.then获取处理结果
1 | <pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">const p = new Promise(function (resolve, reject){ |
2. 基于Promise处理Ajax请求
2.1 处理原生Ajax
1 | <pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">function queryData(url){ |
2.2 then参数中的函数返回值
- 返回promise 实例对象
- 返回的该实例对象可继续调用下一个then方法
1 | <pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">queryData('http://localhost:8000/depart/').then(function (data){ |
- 返回普通值
- 返回的普通值会传给下一个then,通过then参数中的函数的参数接收该值
1 | <pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">queryData('http://localhost:8000/depart/').then(function (data){ |
2.3 Pormise 常用API
- 实例方法
- p.then() 得到异步任务的正确结果
- p.catch() 获取异常信息
- p.finally() 成功与否都会执行
- 实例方法
- Promise.all() 并发处理多个异步任务,所有任务全部执行完成后返回结果
- Promise.race() 并发执行多个任务,其中一个任务执行完成后就能得到结果
1 | <pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 传入数组,数组为promise实例对象 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lixiansen's blog!




