JSFiddle - React, Tailwind, and code Playground
JavaScript
var RateLimiter = require('limiter').RateLimiter;
var createCsvWriter = require('csv-writer').createArrayCsvWriter;
var limiter = new RateLimiter(27, 'second', true);
const csvWriter = createCsvWriter({
header: ['NAME'],
path: 'out.csv'
});
var final = [xxxx, xxxx, xxxx]
final = final.reduce((accumulator, item, index) => {
return accumulator.then(() => {
//limit the API calls according to the limiter defined above
return new Promise(resolve => {
limiter.removeTokens(1, () => {
nexmo.numberInsight.get({
level: 'basic',
number: item
}, (error, response) => {
if (error) {
console.error(error)
resolve(error);
} else {
console.log(response.status_message)
resolve(csvWriter.writeRecords([
response.status_message // this is the new line
]))
}
})
})
})
})
}, Promise.resolve());