t(o.ot) Δημοσ. 26 Μαΐου 2020 Δημοσ. 26 Μαΐου 2020 Επιθετικό το ποστ μου επειδή αναρρωτιέμαι πώς μπορεί η προτροπή για αλλαγή framework σε κάτι όσο immature είναι η deno να βοηθήσει τον ΤΣ. Μάλιστα. Keep trolling.
k33theod Δημοσ. 27 Μαΐου 2020 Μέλος Δημοσ. 27 Μαΐου 2020 (επεξεργασμένο) @skiabox Ευχαριστώ για την απάντηση αλλά όντως o κώδικας είναι μόνο front-end. Εφόσον έχω λύση στη javascript δεν με ενδιαφέρει να χρησιμοποιήσω-μάθω κάποια άλλη τεχνολογία ειδικά όταν είναι μόνο και μόνο να λύσω ένα συγκεκριμένο πρόβλημα. Εδώ δεν μπορώ να καταλάβω αυτά της js και ας την χρησιμοποιώ κάτι χρόνια τώρα φαντάσουν να πάω αλλού. @Xvipes @t(o.ot) Ευχαριστώ για την απαντήσεις στη ερώτηση. Xvipes αν μπορούσες λίγο να περιγράψεις τι γίνεται στον κώδικα ή να δώσεις κάποια πηγή const get_from_curl = async(immo) => έτσι δηλαδή δημιουργείται μία async function Μετά εδώ η map επιστρέφει τι; promises; const immosPromises = immos.map(get_from_curl); και εδώ ; const scores = await Promise.all(immosPromises).then(res => Promise.all(res.map(r => r.text()))); Επεξ/σία 27 Μαΐου 2020 από k33theod
Xvipes Δημοσ. 27 Μαΐου 2020 Δημοσ. 27 Μαΐου 2020 (επεξεργασμένο) 46 minutes ago, k33theod said: @skiabox Ευχαριστώ για την απάντηση αλλά όντως o κώδικας είναι μόνο front-end. Εφόσον έχω λύση στη javascript δεν με ενδιαφέρει να χρησιμοποιήσω-μάθω κάποια άλλη τεχνολογία ειδικά όταν είναι μόνο και μόνο να λύσω ένα συγκεκριμένο πρόβλημα. Εδώ δεν μπορώ να καταλάβω αυτά της js και ας την χρησιμοποιώ κάτι χρόνια τώρα φαντάσουν να πάω αλλού. @Xvipes @t(o.ot) Ευχαριστώ για την απαντήσεις στη ερώτηση. Xvipes αν μπορούσες λίγο να περιγράψεις τι γίνεται στον κώδικα ή να δώσεις κάποια πηγή const get_from_curl = async(immo) => έτσι δηλαδή δημιουργείται μία async function Μετά εδώ η map επιστρέφει τι; promises; const immosPromises = immos.map(get_from_curl); και εδώ ; const scores = await Promise.all(immosPromises).then(res => Promise.all(res.map(r => r.text()))); const get_from_curl = async(immo) => - "έτσι δηλαδή δημιουργείται μία async function" αυτό ακριβώς. - "Μετά εδώ η map επιστρέφει τι; promises;" const immosPromises = immos.map(get_from_curl); αυτό ακριβώς. Επιστρέφει array από promises με σεταρισμένα params που δεν έχουν εκτελεστεί ακόμα για να τις εκτελέσει η Promise.all όλες μαζί παράλληλα. const scores = await Promise.all(immosPromises).then(res => Promise.all(res.map(r => r.text()))); Εδώ είναι λίγο περίεργο αλλά πρακτικά εκτελούνται όλα τα promises και μετά για κάθε ένα αποτέλεσμα αυτών εκτελείτε ασύγχρονα το .text() της κάθε μίας. Αυτό εδώ πιο αναλυτικά θα μπορούσε να γραφτεί: const scoreResults = await Promise.all(immosPromises); // Εκτελούμε ολα τα requests const scoreResultText = scoreResults.map(score => score.text); // Φτιάχνουμε ένα array με τα promises του text των αποτελεσμάτων. const scoresArray = await Promise.all(scoreResultText);// Εκτελούμε ολα τα text() Και οι άλλοι τρόποι που είπαν τα παιδιά είναι μια χαρά απλά με το Promise.all κερδίζεις ότι εκτελούνται παράλληλα όλα τα requests(θεωρώ πως αυτό είναι εφικτό βάσει του κώδικά σου μιας και από ότι καταλαβαίνω δε χρειάζεσαι το αποτέλεσμα του ενός για να εκτελέσεις το επόμενο). Πηγή: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all p.s Κρατάω τις επιφυλάξεις μου για το ότι εκτελούνται παράλληλα Επεξ/σία 27 Μαΐου 2020 από Xvipes 1
k33theod Δημοσ. 27 Μαΐου 2020 Μέλος Δημοσ. 27 Μαΐου 2020 (επεξεργασμένο) Δημοσ. πριν από 13 λεπτά (επεξεργασμένο) 17 λεπτά πριν, Xvipes είπε Και οι άλλοι τρόποι που είπαν τα παιδιά είναι μια χαρά απλά με το Promise.all κερδίζεις ότι εκτελούνται παράλληλα όλα τα requests(θεωρώ πως αυτό είναι εφικτό βάσει του κώδικά σου μιας και από ότι καταλαβαίνω δε χρειάζεσαι το αποτέλεσμα του ενός για να εκτελέσεις το επόμενο) Σωστό είναι ανεξάρτητα το ένα από το άλλο. Ευχαριστώ Επεξ/σία 27 Μαΐου 2020 από k33theod
denbootarei Δημοσ. 31 Μαΐου 2020 Δημοσ. 31 Μαΐου 2020 (επεξεργασμένο) Στις 27/5/2020 στις 10:31 ΠΜ, Xvipes είπε const immosPromises = immos.map(get_from_curl); αυτό ακριβώς. Επιστρέφει array από promises με σεταρισμένα params που δεν έχουν εκτελεστεί ακόμα για να τις εκτελέσει η Promise.all όλες μαζί παράλληλα. Μια μικρή διόρθωση, η Promise.all δεν εκτελεί τις Promises. Οι Promises ξεκινούν την εκτέλεσή τους την στιγμή της δημιουργίας τους (στην συγκεκριμένη περίπτωση με την map). Με άλλα λόγια αν ανάμεσα στην map και στην Promise.all υπήρχαν άλλες 10 -15 εντολές , οι Promises θα συνέχιζαν κανονικά το παράλληλο τρέξιμό τους. Η Promise.all απλά είναι ένας τρόπος για να ειδοποιηθούμε ότι ολοκληρώθηκαν όλες ή κάποια απέτυχε. πηγή : https://stackoverflow.com/a/30823708 Επεξ/σία 31 Μαΐου 2020 από denbootarei
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα