promise 对象的状态能在外部改变吗?
比方说如下的代码,我想让当 queue 的长度小于 3 的时候,push 一个值进去。初步的想法是await一个 promise ,然后整个 put 函数阻塞在这里,等到 promise 状态改变了以后,也就是 queue 中的元素被取出且长度小于 3 时,put 函数继续从阻塞的地方开始执行,然后 reslove(),这样接下来就可以 push 值了。
let queue = [];
async function put(message) {
await new Promise((resolve, reject) => {
//这里不知道该怎么写,下面的写法不对
if(queue.lenth <=3){
resolve();
}
})
queue.push(message)
}
我不是整个思路都错了?我现在把zh.javascript.info里面 promise 那一章看完了,是不是有哪些概念没理解?该从哪里去搜索这方面的问题?给点关键词吧。