promise的概念。
一个
Promise是一个代理,它代表一个在创建 promise 时不一定已知的值。它允许你将处理程序与异步操作的最终成功值或失败原因关联起来。这使得异步方法可以像同步方法一样返回值:异步方法不会立即返回最终值,而是返回一个 promise,以便在将来的某个时间点提供该值。
promise可能的三种状态:
一个 Promise 必然处于以下几种状态之一:
- 待定(pending) :初始状态,既没有被兑现,也没有被拒绝。
- 已兑现(fulfilled) :意味着操作成功完成。
- 已拒绝(rejected) :意味着操作失败。
如果一个promise没有resolve或者reject,会发生什么呢?? let's try 一 try
function promiseWithOutResolve(){
console.log('开始测试')
const promise = new Promise((res,rej)=>{
console.log('创建一个promise')
})
promise.then((data)=>{
console.log('promise 的执行结果:',data)
})
setTimeout(()=>{
console.log('promise调用之后的setTimeout执行')
})
console.log('测试结束')
}
promiseWithOutResolve()
最终执行结果
由此可见,一个promise中如果没有resolve或者reject,调用该promise的then或者catch方法并不会执行then中的逻辑。
该promise将永久保留在pending状态。
那这个promise会被回收吗??浏览器什么时候会进行垃圾回收?又是一个新的知识点。。