Making API call every 15 milliseconds in javascript

Viewed 1356

I've got 3 functions, checkusername(username), checkemail(email), checkpassword(password). The API each one checks against has a rate limit and there has to be a delay of 15 milliseconds between each call. I have tried:

setTimeout(checkusername(username), 1500);
setTimeout(checkemail(email), 1500);
setTimeout(checkpassword(password), 1500);

That doesn't work. I've tried various other ways like increasing the delay by 1500 using a variable:

var delay = 1500;
checkusername(username);
if(delay == 1500) {
    delay = delay + 1500;
    checkemail(email);
}
else if(delay == 3000) {
    delay = delay + 1500;
    checkpassword(password);
}

console.log('Checks done!');

None of it works, still getting the code 429 (rate limit exceeded) come up in the console as per from HaveIbeenpwned API.

Either an answer using Javascript or jQuery or I could possibly try it in PHP if there is a solution that way?

By the way each function uses jQuery $.ajax({}) call to the API.

EDIT:

function checkusername(username) {
        $.ajax({
            url: 'https://haveibeenpwned.com/api/v2/breachedaccount/'+username+'?includeUnverified=true',
            type: 'GET',
            dataType: 'json',
            success: function(data) {
                var html = '<h4>Your username was found in the following hacked site breaches:</h4>';
                for(i=0;i<data.length;i++) {
                    var breachName = data[i].Title;
                    var breachDesc = data[i].Description
                    html += '<h3><span class="label label-danger">'+breachName+'</span></h3>';
                    html += '<p>'+breachDesc+'</p>';
                    html += '<br>';
                }
                $('#results').append(html);
            }
        });
    }
3 Answers
Related