# install packages
pnpm i
# run test
pnpm run test
- promise的状态一旦凝固,不再改变
let p = new Promise((resolve, reject) => { resolve('success1') reject('error') // 无效 resolve('success2') // 无效 })
- then方法可以被调用多次
let p=new Promise() p.then() p.then() p.then()
- then方法返回promise,且此promise的状态由接收的回调决定
- then方法接收的回调在上一个promise状态凝固后才调用
- resolve接收当前promise,会报TypeError。
- resolve接收一个promise,会沿用它的state和result。
- resolve接收一个thenable对象,取它的then方法,作为executor创建promise。
const thenable={
then(resolve, reject){
setTimeout(() => resolve('thenable'), 100);
}
}
Promise.resolve().
then(() => thenable).
then(v => {
v; // 'thenable'
});
- Promsie.resolve
- Promise.reject
- Promise.all
- Promise.race
- class style