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');
});