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 那一章看完了,是不是有哪些概念没理解?该从哪里去搜索这方面的问题?给点关键词吧。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.