1const wait = (ms) => new Promise((r) => setTimeout(r, ms));
2let screen = "", latest = 0;
3async function search(query, delay, safe) {
4 const id = ++latest;
5 await wait(delay);
6 if (safe && id !== latest) { console.log("(stale", query, "ignored)"); return; }
7 screen = "results for " + query;
8 console.log("screen shows:", screen);
9}
10async function main() {
11 search("maths", 200, false);
12 search("physics", 50, false);
13 await wait(250);
14 console.log("BUG: box says physics, screen:", screen);
15 search("maths", 200, true);
16 search("physics", 50, true);
17 await wait(250);
18 console.log("FIXED: box says physics, screen:", screen);
19}
20main();