JSFiddle - React, Tailwind, and code Playground
JavaScript
function isGood(number) {
return $.Deferred(function(dfrd) {
if(parseInt(number, 10) == number) {
setTimeout(function() { dfrd.resolve(number); }, 100);
} else {
setTimeout(function() { dfrd.reject(number); }, 100);
}
}).promise();
}
function findGoodNumber(numbers) {
if(numbers.length === 0) {
return $.Deferred.reject().promise();
} else {
return numbers.reduce(function(p, num) {
return p.then(null, function() {
return isGood(num);
});
}, $.Deferred().reject());
}
}
var arr = [3.1, 9.2, 17, 26.4, 89];
findGoodNumber(arr).then(function(n) {
console.log('Good number found: ' + n);
}, function(n) {
console.log('No good numbers found');
});