Wie kann ich mehrere Promises mit einer Funktion 'thennen'?

Die wichtigsten Proxy-Seiten für SOCKS4 und SOCKS5 Proxies haben umgestellt und lassen die Proxies jetzt nicht mehr einfach direkt auslesen. Man muss auf einen Doenload-Link klicken, der über eine Google Drive Weiterleitung erst eine Zip-Datei herunterlädt, in der u.a. eine Textdatei mit den Proxies ist. Das hat dazu geführt, dass alle möglichen Proxy-Scraper nutzlos geworden sind, weil keiner damit umgehen kann.

Ich schreibe gerade einen neuen und habe dabei ein Problem.

Ich habe die Haupt-Seiten in ein Array gespeichert, über dass ich mit einer Funktion Iiteriere (downloadSite), die immer ein Promise zurückgibt, wenn der Download abgeschlossen ist. Dieses Promise wird (für die 'root seiten') mit der Funktion _1 für jede Seite einmal 'gethent'

const http = require('http');
const https = require('https');
const unzip = require('unzip');
const fs = require('fs');
const os = require('os');
const proxySites = [ 'link1', 'link2', 'link3', 'link4' ];


function downloadSite(SITES, i=0) {


// Promise zurückgeben
return new Promise(function(resolve, reject){

    // erste Seite herunterladen
    http.get(SITES[i], res => {

        // Zwischenspeicher für den Quellcode
        var body = '';

        // Quellcode zwischenspeichern
        res.on('data', chunk => body += chunk)

        // Ende des Quellcodes erreicht
        .on('end', () => {

            // Promise 'fullfillen' mit der URL, dem Quellcode und der nächsten Promise
            resolve({
                url: SITES[i],
                body: body,
                next: ++i < SITES.length ? downloadSite(i, SITES) : null
            })
        });
    });
})

}


// Auf den Quellcode jeder 'root-Seite' ausfühen


function _1(data) {

// links speichern
var u = [];

// RegExp um Pfad der Links zu erkennen
if(data.body) data.body.replace(/\/\d{4}\/\d{2}\/\d{2}-\d{2}-\d{2}-.+_\d{1,3}\.html/g, function(path) {

    // Link zusammensetzen und zur liste hinzufügen
    u.push(data.url.split('/search')[0] + path);
});

// doppelte Einträge löschen
u = u.filter((item, pos) => u.indexOf(item) === pos);

// [hier werden bis zu 50 Unterseiten heruntergeladen]

// nächste Promise weitergeben
return data.next;

}


// Download starten


downloadSite(proxySites)


// erste Seite analysieren

.then(_1)


// zweite Seite analysieren

.then(_1)


// dritte Seite analysieren

.then(_1)

// vierte Seite analysieren

.then(_1)

Kennt hier jemand eine Möglichkeit, die ganzen .then(_1).then(_1).then(_1)... mit einer Anweisung aufzurufen (es sind bis zu 50)?

Würde mir echt weiterhelfen.

Liebe Grüße

Win7User

...zum Beitrag

Warum machstn keine Schleife á la für jedes Element do ... ?

...zur Antwort

Ist der Output für die Soundkarte richtig eingestellt?

...zur Antwort

Warte, ich frag Google mal für dich ... ^^

...zur Antwort

Im Ernst man... In der Zeit, in der du hier die Frage stellst und auf Antwort wartest, hättest du mit einmal googeln die Lösung und Umsetzung 4 Mal gehabt.

...zur Antwort

Hey,

wenn du dich mit deinem Microsoft-Account auf dem Rechner angemeldet hast, speichert Microsoft deinen Key online.
Nachdem du neu aufgesetzt und dich wieder mit deinem MS-Account im Setup einloggst, wird der Key wieder eingesetzt. Das kann ein paar Minuten dauern, aber dann ist alles wieder aktiviert.

...zur Antwort

Es gibt eine Taste, die heißt "Einfügen". Wenn du die drückst, wird der Cursor quasi dicker und du überschreibst alles nachfolgende.

...zur Antwort

Was für ein Produkt hast du denn genau? 

Ich kann mir nicht vorstellen, dass es keine Ladegeräte dazu gibt.

...zur Antwort

Du solltest Abitur und einen guten Schnitt haben. 

Du kannst mal nachschauen, welcher NC für dein Bundesland für ein Jurastudium gilt. Der NC ist der Mindestschnitt, den du brauchst, um eine Chance auf einen Studienplatz zu haben.

...zur Antwort

Zurücksetzen bedeutet, dass das Gerät auf den Werkszustand (also so, wie es direkt nach Produktion war) gebracht wird. 

Sämtliche Games und Fortschritte werden hier gelöscht, in deinem Account, sofern zu ihn benutzt, sollten die Fortschritte aber gespeichert bleiben.

...zur Antwort

Die Stelle wird sich lilablau bis rot färben, schmerzen und ein leichtes Gefühl der Verspanntheit hinterlassen. Je nachdem, wo der Knutschfleck gemacht wird. 
Außerdem fällt er optisch sehr stark auf und jedem ist damit klar, was passiert ist. ;) 

Wenn der Schmerz zu groß ist, kannst du die Stelle mit Eis kühlen.
Aber es ist nicht schädlich. :) 

...zur Antwort

Wie sich dein Gesang anhört und ob es sich tatsächlich lohnt, in die Richtung ein Praktikum zu machen - darüber können wir nicht urteilen.
Eine Gesangsprobe wäre eine gute Idee! Hier gibt es genug Leute (ich auch ;) ), die dir ehrlich sagen können, wie es mit deiner Stimme steht.

Allerdings ist ein Praktikum in Richtung Gesang wahnsinnig schwierig zu finden. Es entspricht weder dem schulischen Rahmen noch dem, was du in deiner Umgebung finden wirst.

...zur Antwort

Es ist wichtig, Zeit mit dem Partner (allgemein) zu verbringen. Es ist genauso wichtig, Zeit mit seinen Freunden zu verbringen und sie nicht zu vernachlässigen.

Eine Verabredung ist natürlich ein Punkt, der schon eindeutig dazu auffordert, den versprochenen "Termin" wahrzunehmen.
Geburtstage sind im Voraus planbar. 
Falls es doch irgendwie spontan zustande kommt, könnte man ja den Partner auch einfach mitnehmen. 

Einen Partner zu haben ist genauso wichtig, wie Freunde zu haben!

...zur Antwort