Re: [WICG/webcomponents] Cascading Style Sheet module scripts (#759)

@Rich-Harris , I wonder why you did not use `push`, when you knew that you would fill the array asynchronously. You showed a race condition, but it was caused by a bug in the code. I can imagine other bugs caused by assigning into a variable.

Was you intention to prevent such bugs in the client code by a more limited interface? Did you have other intention?

Corrected code:

```js
arr = ['a'];

function resolveAfter (value, ms) {
  return new Promise(f => setTimeout(() => f(value), ms));
}

async function addB() {
  arr.push(await resolveAfter('b', 100));
}

async function addC() {
  arr.push(await resolveAfter('c', 50));
}

addB();
addC();

// later...
console.log(arr); // ['a', 'c', 'b']
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/759#issuecomment-797988621

Received on Saturday, 13 March 2021 09:05:29 UTC