Skip to content

Instantly share code, notes, and snippets.

@jakearchibald
Last active June 15, 2021 15:54
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakearchibald/0b37865637daf884943cf88c2cba1376 to your computer and use it in GitHub Desktop.
Save jakearchibald/0b37865637daf884943cf88c2cba1376 to your computer and use it in GitHub Desktop.
async function getResponseSize(url) {
const response = await fetch(url);
let total = 0;
// Here comes the new bit…
for await (const value of response) {
total += value.length;
console.log('Received chunk', value);
}
return total;
}
@stryju
Copy link

stryju commented Nov 5, 2016

shouldn't it be

for await (const value of reader.read())

just trying to grasp how would it know about what is "awaitable" in this for..of

@jakearchibald
Copy link
Author

@stryju with:

for (const item of collection)

collection[Symbol.iterator] is called to get an iterator for collection. With:

for await (const item of collection)

collection[Symbol.asyncIterator] is called to get an iterator that returns promises.

@dandv
Copy link

dandv commented Oct 11, 2018

I get TypeError: response is not async iterable.

@Coder2012
Copy link

Coder2012 commented Jan 29, 2019

@dandv

response is a Promise and is not iterable, an array of them would be iterable however.

@SAIDEEPAKALETI
Copy link

I get TypeError: response is not async iterable.

i get the same error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment