--- date: 2020-10-30 id: 3dac2b04-4015-4c1f-847c-5e677aec1fc0 title: JavaScript For Await Of --- # Syntax ``` javascript async function f() { for await (const x of createAsyncIterable(["a", "b"])) { console.log(x); } } // Output: // a // b ``` # Rejections Like `await` in [async functions](20201026103714-javascript_async_functions), th eloop throws an exception if `next()` returns a rejection: ``` javascript function createRejectingIterable() { return { [Symbol.asyncIterator]() { return this; }, next() { return Promise.reject(new Error("Problem!")); }, }; } (async function () { // (A) try { for await (const x of createRejectingIterable()) { console.log(x); } } catch (e) { console.error(e); // Error: Problem! } })(); // (B) ```