Goodreads helps you keep track of books you want to read.
Start by marking “You Don't Know JS: Async & Performance” as Want to Read:
You Don't Know JS: Async & Performance
Enlarge cover
Rate this book
Clear rating
Open Preview

You Don't Know JS: Async & Performance

(You Don't Know JS #5)

4.31  ·  Rating details ·  635 ratings  ·  41 reviews
No matter how much experience you have with JavaScript, odds are you don't fully understand the language. As part of the "You Don't Know JS" series, this concise yet in-depth guide focuses on new asynchronous features and performance techniques--including Promises, generators, and Web Workers--that let you create sophisticated single-page web applications and escape callba ...more
Paperback, first, 296 pages
Published March 9th 2015 by O'Reilly Media (first published September 25th 2014)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about You Don't Know JS, please sign up.

Be the first to ask a question about You Don't Know JS

Community Reviews

Showing 1-30
Average rating 4.31  · 
Rating details
 ·  635 ratings  ·  41 reviews

More filters
Sort order
Start your review of You Don't Know JS: Async & Performance
Daniel R.
Jun 24, 2015 rated it liked it
This book dives deep into various techniques for handling asynchronous operations in JavaScript. In particular the simplicity and drawbacks of callbacks are outlined with suggestions to address them as the cost of added code complexity. The chapter on promises is one of the best that I've read and walks through great examples of chaining and the power of composing. The chapter on generators focuses on modeling asynchronous code in a more synchronous manner. I was unconvinced and found the code e ...more
Aug 26, 2018 rated it liked it
This book should have ended with chapter 4.

Chapters 1-4 deal with the "Async" stuff.
Chapter 1 starts with a general introduction to concurrency and asynchrony and how it is managed in JavaScript via the event queue.
chapter 2 describes callbacks: the pre-ECMAScript 6 way to manage asynchrony and focuses on its limitations.
Chapter 3 details every possible aspect of Promises and how they solve the limitations of callbacks.
Chapter 4 deals with Generators: another welcome new feature of ECMAScript 6
Temo Tchanukvadze
Dec 29, 2018 rated it it was amazing
Shelves: js
You think you know JS? Read this book!
Vlad Ardelean
Dec 24, 2018 rated it really liked it
Shelves: tech
Quite technical, not at all light, very interesting read. Although understanding promises and generators is quite handy, the last part about advanced patterns is one of those things that I'm not sure when I'll end up using.

Still, while I personally appreciate knowing stuff, without worrying too much about when I'll find that knowledge useful, some more pragmatic folks will probably skip those parts (apendixes).

The chapter about promises is a little too preachy, promising that they will save us f
Ilya Ivanov
Sep 12, 2016 rated it it was amazing
I have never imagined that there are so many concerns not with callbacks, but regarding promises as well.

Wonderful book on handling async requests via callbacks, promises and handling them via generators. Kyle looks ahead a bit into ES7 async\await features.

Last two chapters cover web performance, from general topics: Web Workers, SIMD, asm.js, to very specific ones: benchmarking pieces of js code, figuring out crucial path. I will definitely take a look at

Sathish Paul
Aug 09, 2017 rated it really liked it
A fantastic exploration of what "async" means in the context of JavaScript. I was amazed at the depth of explanation provided especially for the Promises chapter. It is a gold mine in my opinion, one that I expect to be returning to again and again.

The author's take on Generators is pretty interesting. Though I must confess, after a while, it started going a little above my head. This only means that the text is dense and needs re-reading. This also makes me think how much of this can I apply in
Oct 05, 2018 rated it it was amazing
Clear and easy to understand, this has helped me make sense of the often murky world of promises and generators.

It's very information dense but I found it easier to get to grips with by reading through a chapter and then going back and trying out the supplied code for myself.

The performance chapters didn't feel as in-depth as the rest of the book but they did cover a few little things that the JavaScript engine will do to your code without you knowing (eg unrolling recursion for you if it thin
Hưng Đặng
Mar 04, 2019 rated it really liked it
Shelves: it-books
The most interesting thing today is that I got one question in my interview about Promise and it was covered in this book.
A few things from the top of my mind:
1. Callbacks are no good, use them sometimes and avoiding nest them. For many async task, try using Promise.
2. Promise tends to swallow errors so use it with async/await
3. Optimization my code is more complicated than other devs suggest. Using or benchmarkjs to test my optimzation.
There are more to this book that I have yet put
Jon Jones
Dec 25, 2019 rated it it was amazing
Every book in this series is a must-read for a Javascript dev. This one does not fail to deliver. The reason I choose to read this book is to learn more about how aysnc works in JS. I never really mentally grasped ASYNC with full confidence even though I've been using it for over 10 years. I would need to google the best approach for addressing deadlocks or race conditions.

This book definitely helped gave me a much fuller understanding of async. All the issues with callback, not just callback he
Divan Visagie
Mar 30, 2020 rated it did not like it
This is the worst book I have read in my life so far.

It's about 5 times more verbose than it needs to be, making it clear that the entire series actually could have been a single book rather than a series... but gotta make bank right?

Besides the verbosity the author jumps back and fourth referencing both past and future chapters as well as repeating concepts over and over and over... The chapter on promises alone spans around 70 pages and could have honestly been compacted to about 20 or less.

This one seemed to me not as useful as previous ones from the series. But, still, it's rather useful. It contains a great explanation about what Promises is and why they were included in js. But apart from it, the book contains chapters about topics related to concurrency itself but not to JavaScript itself. I didn't find it useful, since I am quite familiar with the concept.

Also, the book contains a chapter about Generators and I must confess I didn't get it. It's not clear what problems they
May 08, 2019 rated it it was amazing
Amazing book if you want to understand how asynchronicity (or the illusion of asynchronicity) in JavaScript works. Kyle has a unique way of explaining deep technical CS concepts in a simple and straightforward manner. He lays down the differences between concurrency, serialism and parallelism and then use those differences to explain the JS Event loop and then goes into the technicalities of implementation using callbacks, promises, and generators. Finally, he gives some overview of assessing pe ...more
Dec 13, 2018 rated it it was amazing  ·  review of another edition
I really liked building an understanding for promises and async/await in javascript. One thing that I had never seen before was generators which is the underlying magic behind asynchronous programming in javascript. It was cool to understand that better. The performance aspect of the book could have been more fulfilling but I guess if you're using javascript you probably don't care that much about performance anyway. ...more
Zachary Lysobey
Dec 07, 2019 rated it it was amazing
Shelves: technology
This whole series is awesome. Having read several JS books, it was nice to have a really comprehensive technical treatment on these topics. These books read really well, and somehow manage to be engaging at the same time as being very thorough.

One thing I really like about this book, is that since it is open-sourced and available on GitHub, I can easily reference it when any questions come up about these topics.
Callbacks, promises and generators. All things asynchronous. No reservations about the quality, but it was a bit boring. Among the books from the YDKJS series by Simpson, even though async operations is are hugely important in frontend programming, this one I liked probably the least and likely will not return to it and will use other resources for this topic. I skipped the addendums about asynquence library authored by Simpson, because it did not seem relevant anymore.
Dec 11, 2017 rated it really liked it
The last chapter on performance is a complete dud which could be summarized in a single paragraph. Some of the chapters are overtly long but still exhaustive so 4 stars unless I find a better book on this topic.
Toros Yesja
Aug 09, 2018 rated it really liked it
The first appendix was unnecessary (perhaps the second one as well), the Promise's chapter did get repetitive (but it was still good), and I wish he had gone deeper into performance. Still not a bad book though, worth reading. ...more
Emily Owaki
Feb 12, 2019 rated it really liked it
Shelves: tech-books, 2019
This book ended up more low level than I had expected. Coming in without much of an understanding of generators and async/await, I ended up having to consult outside sources more than I'd have liked, just to be able to follow along with what the writer was talking about. ...more
Shivam Mamgain
Feb 24, 2019 rated it liked it
All the books in the series are quite verbose - over-explanation with analogies doesn't always make it easy to understand concepts. "Async & Performace" title doesn't get concurrency and parallelism right. Rest, it does do a good job of explaining JS's quirkiness. ...more
Heba Atallah
Nov 27, 2017 rated it liked it
Shelves: javascript
*To re-read some chapters
Mar 30, 2018 rated it it was amazing
Shelves: ebooks
I don't know why I didn't read this book earlier, for weeks I've been lost with all the "Async-Await" tech talks and now this book, eloquently written offers a clear and consice explanation. ...more
Dmytro Chasovskyi
Jun 20, 2018 rated it really liked it
Shelves: technical
The book itself is good. The only the part I didn't like was about the asyncquence library. I felt it was out of the scope of JavaScript core features. Apart from this book is amazing. ...more
Aug 15, 2018 rated it it was amazing
One of the best resources for learning the ins and outs of JS asynchronous programming and Promises. Some really great insight about JS performance and benchmarking too!
Eduardo Vedes
Mar 02, 2019 rated it it was amazing
The best book about javascript I've read in which concerns to async and performance! Learned a lot of new things I didn't know and didn't find in another place. ...more
Aug 07, 2019 rated it it was amazing
I mean, this series of the books are MUST READ for the engineers that want to feel strong in JS world.
Max Patiiuk
Dec 25, 2021 rated it really liked it
Parts of the book are quite outdated
Vibhor Rawal
Jan 08, 2022 rated it really liked it
I've fallen in love with JS :3
Amazing writeup, chapter on generators felt a little boring, but I guess it's on me since I haven't worked on it yet
Oct 16, 2016 rated it really liked it
Author is right. If you think you know, you're probably wrong. ...more
Stevo Ilišković
When we fake multitasking, such as trying to type something at the same time we're talking to a friend or family member on
the phone, what we're actually most likely doing is acting as fast context switchers. In other words, we switch back and forth
between two or more tasks in rapid succession, simultaneously progressing on each task in tiny, fast little chunks. We do it
so fast that to the outside world it appears as if we're doing these things in parallel.
Does that sound suspiciously like async
Abdulfattah Popoola
Feb 15, 2017 rated it liked it
Long book, some parts felt like filler material. Still had some gems though.
« previous 1 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
  • Designing Data-Intensive Applications
  • The Pragmatic Programmer: From Journeyman to Master
  • Eloquent JavaScript: A Modern Introduction to Programming
  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • High Performance JavaScript
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Finansowy ninja
  • HTML and CSS: Design and Build Websites
  • Black Box Thinking: Why Some People Never Learn from Their Mistakes - But Some Do
  • Finansowa Forteca
  • The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
  • Extraordinary Popular Delusions and the Madness of Crowds
  • An Alien Doll in Japan
  • Upgrade
  • Professional JavaScript for Web Developers
  • JavaScript: The Definitive Guide
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
Kyle Simpson is an Open Web Evangelist from Austin, TX, who's passionate about all things JavaScript. He's an author, workshop trainer, tech speaker, and OSS contributor/leader. ...more

Other books in the series

You Don't Know JS (6 books)
  • You Don't Know JS: Up & Going
  • You Don't Know JS: Scope and Closures (You Don't Know JS, #2)
  • You Don't Know JS: this & Object Prototypes
  • You Don't Know JS: Types & Grammar
  • You Don't Know JS: ES6 & Beyond

Related Articles

Need another excuse to treat yourself to a new book this week? We've got you covered with the buzziest new releases of the day. To create our...
40 likes · 5 comments
“The only thing worse than not knowing why some code breaks is not knowing why it worked in the first place! It's the classic "house of cards" mentality: "it works, but I'm not sure why, so nobody touch it!" You may have heard, "Hell is other people" (Sartre), and the programmer meme twist, "Hell is other people's code."
I believe truly: "Hell is not understanding my own code.”
“If at every point that you encounter a surprise or frustration in JavaScript, your response is to add it to the blacklist (as some are accustomed to doing), you soon will be relegated to a hollow shell of the richness of JavaScript. While this subset has been famously dubbed “The Good Parts,” I would implore you, dear reader, to instead consider it the “The Easy Parts,” “The Safe Parts,” or even “The Incomplete Parts.” 0 likes
More quotes…