ES6 promise
Posted RunningAndRunning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 promise相关的知识,希望对你有一定的参考价值。
let promise = new Promise (function (resolve, reject) { if (true) { resolve(value) //异步操作成功时执行的代码 } else { reject(error) //异步操作失败时候执行的代码 } })
resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 Pending 变为 Resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 Pending 变为 Rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
promise.then(resolved, rejected) // resolved和rejected分别是异步操作执行成功和失败时候回调函数,rejected回调函数是可选的 function timeout(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms, ‘done‘); }); } timeout(100).then((value) => { console.log(value); });
promise新建后就会立即执行,then中指定的回调函数,将在当前脚本所有同步任务执行完才会执行
promise.then(resolved).catch(rejected) catch用于捕获错误 promise.all([p1, p2, p3]) //p1,p2,p3三个异步操作同时进行,只有当三个都完成的时候才返回fulfilled,只要有一个rejected就变为rejected var p = promise.race([p1, p2, p3]) //只要p1、p2、p3中有一个实例率先改变状态,p的状态就跟着改变 promise.resolve()将对象转为promise对象 var jsPromise = Promise.resolve($.ajax(‘/whatever.json‘)); Promise.resolve(‘foo‘) // 等价于 new Promise(resolve => resolve(‘foo‘)) promise.reject()
以上是关于ES6 promise的主要内容,如果未能解决你的问题,请参考以下文章