标签:col err 使用 fill 接受 执行 nbsp else 异步
1.主要用于异步计算。
2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。
3.可以再对象之间传递和操作promise,处理队列。
为了避免页面冻结,不执行操作,可以异步操作,一时间可以执行多个事件!
resolve 方法可以使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作。
reject 方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。
// Promise实例的创建 let p = new Promise((resolve, reject) => { // TODO })
但是这里有个缺陷,一旦被创建就会立即被执行,所以用药函数包裹起来。
let getPromise = () => { return new Promise((resolve, reject) => { // TODO // 处理结果 if (result) { resolve(successObject) } else { reject(error) } }) }
常用的方法就是then()和catch()这两个方法,通过then()的传递可以解决回调的问题。
then可以接受两个参数,都是回调函数,第一个回调函数用来处理resolved
状态,参数为Promise实例调用resolve
传递的成功对象。第二回调函数用来处理rejected
状态,参数为调用Promise实例调用reject
传递的错误对象。
let getPromise = () => { return new Promise((resolve, reject) => { // 处理结果 if (result) { resolve(successObject) } else { reject(error) } }) } getPromise().then(res => { // 调用方法 console.log(res) }) .catch(err => { //错误执行时 })
也可以用then()继续返回一个promise对象,通过return一个新的promise,继续执行函数。
getPromise().then(res => { //第一层Promise console.log(res) return getPromise() ) .then(res => { // 第二层Promise console.log(res) }) .catch(err => { // 错误执行 })
使用 catch 的写法比一般的写法更加清晰明确。我们在捕获错误的时候,直接在最后写catch函数即可。
标签:col err 使用 fill 接受 执行 nbsp else 异步
原文地址:https://www.cnblogs.com/0314dxj/p/11942637.html