Promises Tutorials
Activate Service Workers Faster
Service workers are great for many purposes: speed, offline, cache control, and more. You can view many code service worker usage samples over at the Service Worker Cookbook, if you're so interested. One of those recipes, Immediate Claim, is as important and useful as it provides...
Offline Recipes for Service Workers
"Offline" is a big topic these days, especially as many web apps look to also function as mobile apps. The original offline helper API, the Application Cache API (also known as "appcache"), has a host of problems, many of which can be found in Jake Archibald's...
JavaScript Promise API
While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready? Promises are becoming a big part of the JavaScript world...
Use Promises Instead of Callbacks with promisify-node
One of the reasons we love promises so much is because they allows us to avoid the infamous callback hell that we've all experienced in these early days of Node.js. When I see an API that doesn't use the promise pattern, I get annoyed. Luckily I've found promisify-node, a...
JavaScript Polling
Polling with JavaScript is one of those ugly but important functions within advanced front-end user experience and testing practices. Sometimes there isn't the event you can hook into to signify that a given task is complete, so you need to get your hands dirty and simply poll for...
fetch API
One of the worst kept secrets about AJAX on the web is that the underlying API for it,
XMLHttpRequest
, wasn't really made for what we've been using it for. We've done well to create elegant APIs around XHR but we know we can do better. Our effort to...JavaScript Battery API: Promises
Working at Mozilla has afforded me the time to look at new APIs, one of them being the Battery API. I wrote about the Battery API a while back, when the API was fresh into browsers. Since then the Battery API has changed, implementing a promise-based...
Getting Concurrent With ES6 Generators
If you've read and digested part 1, part 2, and part 3 of this blog post series, you're probably feeling pretty confident with ES6 generators at this point. Hopefully you're inspired to really push the envelope and see what you can do with...
Going Async With ES6 Generators
Now that you've seen ES6 generators and are more comfortable with them, it's time to really put them to use for improving our real-world code. The main strength of generators is that they provide a single-threaded, synchronous-looking code style, while allowing you to hide the...
asynquence: More Than Just Promises (Part 2)
asynquence Is Promises As we saw in part 1, asynquence is a wrapper abstraction on top of promises, as sequences. A single-step sequence approximates a promise, though they're not identically compatible. However, that's no big deal, since asynquence can both consume and vend standard promises/thenables...