Promise example using Q.js

by iamjpg

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/1.4.1/q.js"></script>
<div class='wrapper'>
    <ul id='post'></ul>
</div>

CSS

body {
    font-family: Helvetica, Sans, Arial;
}
#post {
    padding: 10px;
    margin: 5px;
    border: 2px dashed #999;
}
ul {
    list-style: circle;
}

li {
    margin-left: 20px;
}

JavaScript

function foo() {
    var defer = Q.defer();
    $.ajax({
        url: 'https://jsfiddle.net/echo/jsonp/',
        dataType: 'jsonp',
        success(response) {
            $('#post').append('<li>First Method (AJAX) Executed</li>');
            defer.resolve(response);
        },
        error: function () {
            deferred.reject(new Error("Status code was " + request.status));
        }
    });
    return defer.promise;
}

function bar() {
    $('#post').append('<li>Second Method Executed</li>');
}

Q.fcall(foo).then(bar);