前端基础知识---Promise
Posted wisdomfree
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端基础知识---Promise相关的知识,希望对你有一定的参考价值。
Promise总共有三种状态,分别是pending,resolved,rejected。
- 状态变化是pending->resolved或者pending->rejected,且状态变化不可逆。
- pending不会触发then或者catch回调函数,resolved会触发then回调函数,rejected会触发catch回调函数。
- then正常返回resolved,里面有报错返回rejected;catch正常返回resolved,里面有报错返回rejected。
面试题
// 第一题
Promise.resolve().then(() => {
console.log(1) //返回 resolved 状态的 promise,不执行catch
}).catch(() => {
console.log(2)
}).then(() => {
console.log(3)//返回 resolved 状态的 promise
})
结果为1,3
// 第二题
Promise.resolve().then(() => {
console.log(1)
throw new Error(\'erro1\') //原本应返回resolved状态的promise,但因为抛出异常,所以返回 rejected 状态的 promise,执行catch
}).catch(() => {
console.log(2) // 返回 resolved 状态的 promise,执行then
}).then(() => {
console.log(3) // 返回 resolved 状态的 promise
})
结果为1,2,3
// 第三题
Promise.resolve().then(() => {
console.log(1)
throw new Error(\'erro1\') // 原本应返回resolved状态的promise,但因为抛出异常,返回 rejected 状态的 promise
}).catch(() => {
console.log(2) // 返回 resolved 状态的 promise,不执行catch
}).catch(() => {
console.log(3)
})
结果为1,2
以上是关于前端基础知识---Promise的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象
[vscode]--HTML代码片段(基础版,reactvuejquery)