Deferred - Chain Multiple AJAX Calls - Pass Response to Multiple Chained Promises - NO DFD Wrapper FN - BIZAMAJIG USAGE

by bizamajig

HTML

<div>
</div>

JavaScript

var bizamajig__set__workspace__element__update__dfd = function( request__context )
{
    console.log('bizamajig__set__workspace__element__update__dfd started ' + request__context.target_container);
    var bizamajig__dfd__return = $.Deferred();
    $.ajax({
        url: '/echo/json/',
        type: 'post',
//      data: { json: '{ "columns": ["a", "b", "c"] }', delay: 2 }
        data: { json: request__context.target_container, delay: 2 }
    }).done( function( response ) {
//      bizamajig__dfd__return.resolve( response.columns );
        response = request__context.target_container + 'BBB<br />';
alert( response );
        bizamajig__dfd__return.resolve( response );
    });
    return bizamajig__dfd__return.promise();
}
// function loadSelectedColumns( columns ) {
function loadSelectedColumns( response ) {
    console.log('loadSelectedColumns started', response);
    var bizamajig__dfd__return = $.Deferred();
    $.ajax({
        url: '/echo/json/',
        type: 'post',
//      data: { json: '{}', delay: 2 }
        data: { json: response, delay: 2 }
    }).done( function( data ) {
//      bizamajig__dfd__return.resolve( columns.map( function(i) {
//          return 'data_for_' + i
//      }));
        response = response + 'CCC<br />';
alert( response );
        bizamajig__dfd__return.resolve( response );
    });
    return bizamajig__dfd__return.promise();
}
function render( response ) {
    console.log('render started', response);
/*
//  THIS WORKS FOR THE COMMENTED OUT CODE:
    var $ul = $('ul'),
        len = data.length,
        i;
    for ( i = 0; i < len; i++ ) {
        $ul.append( $('<li />').text( data[i] ) );
    }
*/
    $( 'div' ).append( response );
}
/*
bizamajig__set__workspace__element__update__dfd({
    target_container:         'AAA<br />'
}).pipe( loadSelectedColumns ).pipe( render );
*/
    var bizamajig__dfd__call = bizamajig__set__workspace__element__update__dfd({
        target_container:         'AAA<br />'
    });
   ...