JSFiddle - React, Tailwind, and code Playground

by nikoshr

HTML

<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://backbonejs.org/backbone-min.js"></script>

JavaScript

function promiseSync() {
    var dfd = $.Deferred();
    this.once('sync', function() {
        dfd.resolve();
    });
    return dfd.promise();
}

var Products = Backbone.Collection.extend({
    url: '/echo/json/?delay=1',
    promiseSync: promiseSync
});
var Categories = Backbone.Collection.extend({
    url: '/echo/json/',
    promiseSync: promiseSync
});

var products = new Products();
products.on('sync', function() {
    console.log('sync', 'products');
});
var categories = new Categories();
categories.on('sync', function() {
    console.log('sync', 'categories');
});

    var collections = [products, categories];
    var xhrs = _.invoke(collections, 'fetch');
    var syncs = _.invoke(collections, 'promiseSync');

    $.when.apply(null, xhrs).then(function(){
       console.log('fetch');
    });
    $.when.apply(null, syncs).then(function(){
       console.log('syncs');
    });