Wait for Rate Limiter Resources to Become Available
I'm trying to migrate a small script from limiter and I'm running into a few issues.

My script calls an API that limits requests to 3 per second, so my script needs to stay under that. In order to do so, I'm trying to write a simple batching function that can be called and will automatically limit requests. Ideally, this function will also process its callbacks in order.

``` javascript
import { RateLimiterMemory, RateLimiterQueue } from "rate-limiter-flexible";

function mapWithRateLimiter(array, callback) {
  const memoryLimiter = new RateLimiterMemory({ points: 3, duration: 1 });
  const queueLimiter = new RateLimiterQueue(memoryLimiter, {});

  return Promise.all(array.map(async (item, index) => {
    await queueLimiter.removeTokens(1);
    return callback(item, index);
  }));
}
```

Once this function gets called with the fourth item, the `removeTokens` function rejects. While this makes sense for an API, in my use case I really want it to wait and resolve when a token becomes available. I was able to achieve this with limiter with the following function:

``` javascript
export async function mapWithRateLimiter(array, callback) {
  const limiter = new RateLimiter({
    tokensPerInterval: 3,
    interval: "second"
  });

  return Promise.all(array.map(async (item, index) => {
    await limiter.removeTokens(1);
    return callback(item, index);
  }));
}
```

Is this possible with rate-limiter-flexible?

Thanks!