In the current project it became necessary to perform a consecutive series of ajax requests and, at the end - to do something with all their results.$.waterfall( function() { return $.ajax(...) }, function(arg1) { return $.ajax(...) }, function(arg2) { return $.ajax(...) } ) .fail(function(error) { console.log('fail'); console.log(error); }) .done(function() { console.log('success'); console.log(arguments); }) $.waterfall( function() { return $.ajax(...) }, function(arg1) { return arg1 && arg1.answer == 42 ? $.ajax(...) : false; }, function(arg2) { return $.ajax(...) } ) .fail(function(error) { console.log('fail'); console.log(error) }) .done(function() { console.log('success'); console.log(arguments) }) var dfrd = $.Deferred(); $.waterfall( function() { return $.ajax(...) }, $.ajax(...), // " " dfrd, // resolve/reject 'string', 42, false // ) .fail(function(error) { console.log('fail'); console.log(error) }) .done(function() { console.log('success'); console.log(arguments) }) Source: https://habr.com/ru/post/122002/
All Articles