public function fetchGroupsInfromation($rejectedCallbackFunction) {

        $pool = new Pool($this->client, $this->createdRequests, [
            'concurrency' => 18,
            'fulfilled'   => function ($response, $index) {
                $responseJson                    = json_decode($response->getBody()->getContents());
                $groupPagesIterator              = new MarketGroupsPagesIterator($responseJson, $this->client);
                $this->acceptedResponses[$index] = iterator_to_array($groupPagesIterator->getAllPages());
            },
            'rejected'    => function ($reason, $index) use (&$rejectedCallbackFunction)  {
                call_user_func_array($rejectedCallbackFunction, array($reason, $index));
            },
        ]);

        $promise = $pool->promise();
        $promise->wait();
    }