JSFiddle - React, Tailwind, and code Playground

JavaScript

(function( $ ) {
    function asArray() {
        return Array.prototype.slice.call( arguments, 0 );
    }
    $.whenLikeIWantIt = function() {
        var args = Array.prototype.slice.call( arguments, 0 ),
            i = 0,
            length = args.length;
        for ( ; i < length; i++ ) {
            args[ i ] = $.when( args[ i ] ).pipe( asArray );
        }
        return $.when.apply( $, args );
    };
})( jQuery );

var defer = $.Deferred().resolve(),
    undefinedDefer = $.Deferred().resolve( undefined ),
    multipleDefer = $.Deferred().resolve( 1, 2, 3 );

$.when(
    defer,
    undefinedDefer,
    multipleDefer
).done(function( a, b, c ) {
    console.log( "Default $.when" );
    console.log( a, b, c );
});

$.whenLikeIWantIt(
    defer,
    undefinedDefer,
    multipleDefer
).done(function( a, b, c ) {
    console.log( "Arrays everywhere" );
    console.log( a, b, c );
});