Yahoo Web Search

Search results

  1. Learning JavaScript eBook (PDF) Download this eBook for free. Chapters. Chapter 1: Getting started with JavaScript. Chapter 2: .postMessage () and MessageEvent. Chapter 3: AJAX. Chapter 4: Anti-patterns. Chapter 5: Arithmetic (Math) Chapter 6: Arrays. Chapter 7: Arrow Functions. Chapter 8: Async functions (async/await) Chapter 9: Async Iterators.

  2. Jun 23, 2024 · A promise is a special JavaScript object that links the “producing code” and the “consuming code” together. In terms of our analogy: this is the “subscription list”. The “producing code” takes whatever time it needs to produce the promised result, and the “promise” makes that result available to all of the subscribed code when it’s ready.

    • Callback “Hell”
    • Promises (I)
    • Promises (II)
    • Promises (III)
    • Promises (IV)
    • Promises (V)
    • Promises (VII)
    • Simple Example
    • Once it is done, the fulfilled() or rejected() callback is guaranteed to be called
    • Promises can be chained
    • Error Handling (II)
    • Error Handling (III)
    • Error Handling (IV)
    • Error Handling (VII)
    • What's left?
    • Promise.all()
    • Promise.race()

    reminder We finished last lecture by discussing the traditional approach to async programming in Javascript Callbacks and the associated problems with them (callback hell) The Pyramid of Doom Unclear evaluation (now and later) Hardcoded Paths (and unclear error handling) Issues of Trust callback too soon? too late? never? in the correct way? How ca...

    Promises are • an abstraction useful in async programming • an associated API that allows us to use this abstraction in our programs • A promise represents a future value of some sort When a promise is created, it is pending At some point in the future, the promise is either fulfilled or rejected fulfilled means the promise’s computation succeeded ...

    The promises API has many methods • but the most basic interaction will look something like var p = new Promise( A promise wraps code that will function(resolve, reject) { run asynchronously // long running computation if (success) { At some point that code is resolve(...); done; if it succeeds, it will } else { notify the world using the reject(...

    Since promises help us dealing with asynchronous code, we still have the issue of now and later to deal with Let's make sure we understand when promise-related code is executed First, consider this code var p = new Promise( function(resolve, reject) { resolve("now"); } ); The code inside of the anonymous function is executed NOW that is synchronous...

    Second, consider this code p.then(function(value) { console.log(value); }); The callback that is passed to then() is executed LATER Once the promise has settled (fulfilled or rejected), all registered callbacks are scheduled in the same way that we saw for process.nextTick() That is, when the promise gets resolved or rejected, the callbacks that we...

    Two functions: testNow/testLater Both are designed to show when promise-related code is executed In testNow, we resolve the promise right away; in testLater we have a call to setTimeout() that delays when the promise gets resolved In both cases, we call then() on the returned promise to show when those callbacks run [scheduled.js]

    We've seen some differences but, at this point, you may be wondering if promises are any different from callbacks? We shall explore the differences next, but, at a high level, promises are objects that represent the result of an async computation once a promise is settled, it stays settled, and remembers its result you can call a promise’s then() m...

    A simple example of using promises to wrap a call to fs.stats() in Node.js [get_size.js] Note: it doesn't matter how long it takes fs.stat() to do its job

    not too early not too late not multiple times just once, guaranteed! What if fs.stat() never finishes? We'll talk about that later.

    How can we use promises to specify an asynchronous workflow? We need some way to be able to specify the steps of that workflow In our examples so far, we've only seen single step workflows; create a promise and call then() on it But, promises can be chained together; now things get interesting! To make this work, you need to know two things when yo...

    Handling errors with callbacks is possible but fraught with peril It is hard to compose error handling across a chain of callbacks And, you typically, have to put in a lot of if statements to handle the conditional logic, leading you back to callback hell Nevertheless, you will see conventions such as Node.js's error first approach fs.stat("file.tx...

    Promises provide a clean way to handle asynchronous errors We've already seen the mechanism, we just haven't seen an example of it If you encounter an error while trying to resolve a promise, you handle the error by catching it and passing it to reject(). This set's the state of the promise to rejected, which then becomes its immutable state for th...

    These two simple examples demonstrate what happens when you register a callback on a rejected promise Promise.reject("whoops").then(null, function(err) { console.log(err); }); Promise.reject("whoops").catch(function(err) { console.log(err); }); Here, we called Promise.reject() directly to create a rejected promise but promises take care of other er...

    What's nice about the Promise approach to handling errors is that it is possible to perform error recovery If you return a value from an error handler, then that resolves the new promise being created by either then() or catch() and that resolved promise can then be chained. Let's look at an example: error_in_chains.js

    We've seen new Promise() Promise.resolve() Promise.reject() p.then(); p.catch(); What's left? Promise.all() Promise.race() The final two methods of the Promise API are all() and race()

    Promise.all() takes an array of promises and returns a new promise If all of the input promises resolve, then the new promise resolves If one of the input promises rejects, then the new promise rejects Let's return to our example that used callbacks to determine the size of all files in a given directory The solution with promises is a little longe...

    Promise.race() takes an array of promises and returns a new promise The first promise to resolve has its value fulfill the new promise The first promise to reject causes the new promise to reject with its reason i.e. it's a race! The first promise to do something (resolve or reject) wins! I have two examples to demonstrate the use of Promise.race()...

    • 547KB
    • 34
  3. A Promise is a native JavaScript object which has two traits: 1. It receives a single argument which is a function. This function needs to have two arguments, a resolve function and a reject function.

  4. Asynchronous JavaScript is everywhere, whether you’re using Ajax, AngularJS, Node.js, or WebRTC. This practical guide shows intermediate to advanced JavaScript developers how Promises can help you manage asynchronous code effectively—including the inevitable flood of callbacks as your codebase grows.

  5. Sep 8, 2023 · Promises are a powerful tool in JavaScript that help manage asynchronous operations and provide a more readable and maintainable codebase. In this tutorial, we will take you from a beginner's level to an expert level, covering all the important aspects of JavaScript promises.

  6. People also ask

  7. Learn how to handle asynchronous work with ease! In this course, you'll use Native JavaScript Promises to write asynchronous code that is easy to read, easy to write and easy to debug. Along the way, you'll be using Promises to make a webapp come to life!

  1. People also search for