Sample of Deferred Object - Twitter

Sample of Deferred Object - Twitter

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
<input type="submit" id="button" value="search" />
<div id="tweets"></div>

JavaScript

if ((!window.firebug || !firebug.firebuglite) &&
    (!window.console || !console.firebuglite)) {
    window.console = {};
    window.console['log'] = function () {}
}

var Twitter = {
    search: function(query) {
        var defer = $.Deferred();
        $.ajax({
            url: "http://search.twitter.com/search.json",
            data: {
                q: query,
                rpp: 50
            },
            dataType: 'jsonp',
            success: defer.resolve,
            error: defer.reject
        });
        return defer.promise();
    }
};

$('#button').on('click', function() {
    Twitter.search('jquery').done(function(data) {
        console.log(data);
        $(data.results).each(function(k,v){ 
           $('#tweets').append(v.text + '<br/>'); 
        });
    });
});