const https = require('https'); const url = 'https://uinames.com/api/'; function request(url) { return new Promise((resolve, reject) => { let data = ''; https .get(url, (res) => { res.on('data', (chunk) => data += chunk); res.on('end', () => resolve(JSON.parse(data))) }) .on('error', (err) => reject(err)); }); } const names = []; const uniqueNames = 5; for (let i = 0; i < uniqueNames; i++) { request(url).then(success, error); } function success(d) { if (names.length === uniqueNames) { return; } if (!names.includes(d.name)) { names.push(d.name); } else { request(url).then(success, error); } if (names.length === uniqueNames) { console.log(names); } } function error(e) { console.log(e); setTimeout(() => { request(url).then(success, error); }, 3000); }