DeferredsExample
by Jose Montero
HTML
<div id="msg" ></div>
CSS
.strong{
font-weight: bolder;
}
.fail{
font-weight: bolder;
color: red;
}
JavaScript
var TestDfdReject = (function(){
return{
names : [],
init : function(name)
{
this.createRecord(name)
.done(function(msg){
$("#msg").append($("<p>").addClass("strong").text(msg));
})
.fail(function(msg){
$("#msg").append($("<p>").addClass("fail").text(msg));
});
},
createRecord : function(name)
{
var deferred = $.Deferred();
this.checkForDups(name)
.done(function(duplicate){
this.names.push(name);
deferred.resolve(`Name: ${name} added in array!`);
}.bind(this))
.fail(function(){
deferred.reject(`Name: ${name} exists in array!`);
});
return deferred.promise();
},
checkForDups : function(name)
{
var deferred = $.Deferred();
if ($.inArray(name, this.names) >= 0)
deferred.reject();
else
deferred.resolve(false);
return deferred.promise();
}
};
})();
TestDfdReject.init("Jose");
TestDfdReject.init("Carlos");
TestDfdReject.init("Jose");
TestDfdReject.init("Pedro");
TestDfdReject.init("Carlos");
console.log(TestDfdReject.names);