코드는 다음과 같습니다
해당 코드를받고 어떤 문제점이 생길 수 있는지 파악해보라 하셨는데... 모른채 넘어갔습니다. 혼자라도 알아보려고 노력했는데 잘 모르겠습니다. 도움을 주실 수 있을까요..
let number = 0;
const times = 100;
function sleep() {
return new Promise((resolve) => setTimeout(resolve, Math.random() * 5));
}
async function adder() { for (let i = 0; i < times; i++) { await sleep(); let read = number;
read = read + 1;
await sleep();
number = read;
}
}
async function subber() {
for (let i = 0; i < times; i++) {
await sleep();
let read = number;
read = read - 1;
await sleep();
number = read;
}
}
async function main() {
console.log("Started with", number);
await Promise.all([
adder(),
subber(),
]);
console.log("Ended with", number);
}
main()
.then(() => console.log("All done"))
.catch((err) => console.error(err));