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 invertPromise(p) {
	return $.Deferred(function(dfrd) {
		p.then(dfrd.reject, dfrd.resolve);
	});
}

function findGoodNumber(numbers) {
	if(numbers.length === 0) {
		return $.Deferred.reject().promise();
	} else {
			return invertPromise(numbers.reduce(function(p, num) {
				return p.then(function() {
					return invertPromise(isGood(num));
				});
			}, $.when()));
	}
}

var arr = [3.1, 9.6, 17.0, 26.9, 89];
findGoodNumber(arr).then(function(n) {
    console.log('Good number found: ' + n);
}, function(n) {
    console.log('No good numbers found');
});