Chaining deferred

HTML

<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<ul>

</ul>

JavaScript

function first () {
    let deferred = $.Deferred();
    
    $('ul').append('<li>Guigo</li>');

		deferred.resolve();
    
    return deferred.promise();
}

function second () {
    let deferred = $.Deferred();
    $('ul').append('<li>Second</li>');
    deferred.resolve();
    return deferred.promise();
}

$(function () {
    $.when(first()).done().then(second).done().then(second);
})