Promesa programada cola / acelerador

tengo unsolicitud-promesa función que realiza una solicitud a una API. Esta API me limita la velocidad y sigo recibiendo el mensaje de error:

Exceeded 2 calls per second for api client. Reduce request rates to resume uninterrupted service.

Estoy corriendo un par dePromise.each bucles en paralelo que está causando el problema, si ejecuto solo una instancia dePromise.each Todo funciona bien. Dentro de estosPromise.each llamadas conducen a la misma función a con unasolicitud-promesa llamada. Quiero envolver esta función con otraqueue funcionar y establecer el intervalo en500 milisegundos para que unrequest no se hace uno después del otro, o en paralelo, sino que se establece en ese momento, en la cola. La cuestión es que todavía necesito estas promesas para obtener su contenido, incluso si lleva bastante tiempo obtener una respuesta.

¿Hay algo que haga esto por mí? ¿Algo en lo que pueda envolver una función y responderá en un intervalo establecido y no en paralelo o disparará funciones una tras otra?

Actualizar: Quizás deba ser específico de la promesa, traté de usar la función del acelerador de subrayado

var debug = require("debug")("throttle")
var _ = require("underscore")
var request = require("request-promise")

function requestSite(){
  debug("request started")
  function throttleRequest(){
    return request({
      "url": "https://www.google.com"
    }).then(function(response){
      debug("request finished")
    })
  }
  return _.throttle(throttleRequest, 100)
}

requestSite()
requestSite()
requestSite()

Y todo lo que volví fue esto:

$ DEBUG=* node throttle.js 
throttle request started +0ms
throttle request started +2ms
throttle request started +0ms

Respuestas a la pregunta(1)

Su respuesta a la pregunta