Для цикла for/forEach не выполняется итерация по всем элементам

В настоящее время я использую каркас болтов с параллельными задачами (Task.whenAll()), я добавляю все свои задачи в список. Во-первых, мне нужно перебрать мой список имен, но он просто прекращает повторение после первой итерации (в цикле [1]). Задачи выполняются, но только для первого элемента в цикле. После этого он просто останавливается. Так что это делает только одну итерацию.

Это пример для arrayList lHoster: [Vivo, OpenLoad, Streamango, FlashX, OpenLoadHD, TheVideo]

public Task<HashMap<String, Object>> getEpisode(String series, int season, String episode) {
        TaskCompletionSource<HashMap<String, Object>> completion = new TaskCompletionSource<>();
        getEpisodeInformation(series, season, episode).onSuccess(task -> {
            List<String> lHoster = (ArrayList<String>) task.getResult().get("hoster");
            List<Task<?>> tHoster = new ArrayList<>();
            // Loop [1]. It only iterates through the first item, then just continues without any reason. Although there are normally 8 items in the string list
            lHoster.forEach(host -> tHoster.add(getOutLink(series, season, episode, host)));
            Task.whenAll(tHoster).onSuccess(task1 -> {
                List<HashMap<String, String>> hoster = new ArrayList<>();
                int i = 0;
                for (Task t : tHoster) {
                    HashMap<String, String> hostData = new HashMap<>();
                    hostData.put("out", (String) t.getResult());
                    hostData.put("name", ((ArrayList<String>) task.getResult().get("hoster")).get(i));
                    i++;
                }
                task.getResult().put("hoster", hoster);
                completion.setResult(task.getResult());
                return null;
            });
            return null;
        });
        return completion.getTask();
    }

0 ответов

Другие вопросы по тегам