手记

Promise属性和方法总结

The Promise object is used for asynchronous computations. A Promise represents a value which may be available now, or in the future, or never.

Syntax

new Promise( /* executor */ function(resolve, reject) { ... } );
  • Parameters

    Description

    
    'use strict';
    var promiseCount = 0;

function testPromise() {
var thisPromiseCount = ++promiseCount;

var log = document.getElementById('log');
log.insertAdjacentHTML('beforeend', thisPromiseCount +
    ') Started (<small>Sync code started</small>)<br/>');

// We make a new promise: we promise a numeric count of this promise, starting from 1 (after waiting 3s)
var p1 = new Promise(
    // The resolver function is called with the ability to resolve or
    // reject the promise
    function(resolve, reject) {
        log.insertAdjacentHTML('beforeend', thisPromiseCount +
            ') Promise started (<small>Async code started</small>)<br/>');
        // This is only an example to create asynchronism
        window.setTimeout(
            function() {
                // We fulfill the promise !
                resolve(thisPromiseCount);
            }, Math.random() * 2000 + 1000);
    }
);

// We define what to do when the promise is resolved/fulfilled with the then() call,
// and the catch() method defines what to do if the promise is rejected.
p1.then(
    // Log the fulfillment value
    function(val) {
        log.insertAdjacentHTML('beforeend', val +
            ') Promise fulfilled (<small>Async code terminated</small>)<br/>');
    })
.catch(
    // Log the rejection reason
    function(reason) {
        console.log('Handle rejected promise ('+reason+') here.');
    });

log.insertAdjacentHTML('beforeend', thisPromiseCount +
    ') Promise made (<small>Sync code terminated</small>)<br/>');

}
This example is executed when clicking the button. You need a browser supporting Promise. By clicking several times the button in a shor

3人推荐
随时随地看视频
慕课网APP