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());