LOCAL OBJECT MODULE
waitFor.load('MyObject', {
property: 'foo',
method: function(data){
console.log(data);
}
})
waitFor('MyObject').then(function(MyObject){
if(MyObject.property == 'foo')
MyObject.method('it works');
});
LOCAL CLASS MODULE
var MyClass = function(options){
$.extend(this, options);
};
MyClass.prototype.getValue = function(key){
return this[key];
};
waitFor.load('MyClass', MyClass);
waitFor('MyClass').then(function(MyClass){
var myClass = new MyClass({foo: 'bar'});
myClass.getValue('foo');
});
MULTIPLE DEPENDENCIES
waitFor.load('MyObject', {foo: 'bar'});
waitFor.load('MyClass', MyClass);
waitFor('MyObject', 'MyClass').then(function(MyObject, MyClass){
var myClass = new MyClass(MyObject);
});
Or
// #load can take an object of key-value pairs
waitFor.load({
'MyObject' : {foo: 'bar'},
'MyClass' : MyClass
});
// #waitFor can take individual arguments or an array
var dependencies = ['MyObject', 'MyClass'];
waitFor(dependencies).then(function(MyObject, MyClass){
var myClass = new MyClass(MyObject);
});
REMOTE LIBRARY
waitFor.load('underscore', 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js', {
exports: '_'
});
waitFor('underscore').then(function(_){
print(_.identity('foo'));
});
REMOTE DATA
waitFor('weather').then(function(json){
print(json);
});
waitFor.load('weather', 'http://api.openweathermap.org/data/2.5/weather?q=new%20york');
MULTIPLE REMOTES
waitFor.load('weather' , 'http://api.openweathermap.org/data/2.5/weather?q=new%20york');
waitFor.load('underscore' , 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js' , {
exports: '_'
});
waitFor('underscore', 'weather').then(function(_, json){
_.pick(json, 'main', 'wind');
});
JSONP
waitFor.load('jsonp', 'http://jsfiddle.net/echo/jsonp/?foo=bar&bar=baz', {dataType: 'jsonp'});
waitFor('jsonp').then(function(data){
print(data);
});
LOCALS AND REMOTES
waitFor.load('weather' , 'http://api.openweathermap.org/data/2.5/weather?q=new%20york');
waitFor.load('underscore' , 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js' , {
exports: '_'
});
waitFor.load('MyClass', function(options){
$.extend(this, options);
})
waitFor('underscore', 'weather', 'MyClass').then(function(_, json, MyClass){
var myClass = new MyClass(_.pick(json, 'main', 'wind'));
});