private function hasFinishedSuccessfullyAsync($finalizeResponse)
    {
        // Again using an Iterator function to generate the threads.
        $promises = $this->pollStatusIterator($finalizeResponse);
        $eachPromises = new Promise\EachPromise($promises, [
            'concurrency' => 1,
            'fulfilled' => function ($pollStatus, $i, $promise) {
                if ($pollStatus != null) {
                    if (!empty($pollStatus['itemsDone'])) {
                        $promise->resolve($pollStatus['itemsDone']);
                    }
                    if (!empty($pollStatus['itemsFailed'])) {
                        $promise->resolve(false);
                    }
                }
                return false;
            }
        ]);
        return $eachPromises->promise();
    }