有一个数组 A
js中异步执行加载多个外部文件操作,比如加载文件a、b...n
for(...){
异步加载();
A.push(0);
}
加载成功一个文件后
A.pop()
最后判断A的长度,如果为0,则说明加载完毕。
请问,如何保证同一时间对A的操作只有一个呢?
有一个数组 A
js中异步执行加载多个外部文件操作,比如加载文件a、b...n
for(...){
异步加载();
A.push(0);
}
加载成功一个文件后
A.pop()
最后判断A的长度,如果为0,则说明加载完毕。
请问,如何保证同一时间对A的操作只有一个呢?
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
负责执行JavaScript代码的线程只有一个,你用js写的所有代码都会在一个线程里执行,所以不需要考虑同步问题。另外你的用于判断文件是否全部加载完毕的操作应该是用一个数字变量记录已加载的文件数或待加载的文件数,往数组里塞没用的东西再判断长度完全没有必要,而且放的位置也不对(要放在回调函数里)。例如
另外可以使用
Promise
和Promise.all
加上await
,看起来会舒服点。