iXdi - Σύγχρονος προγραμματισμός

Πρόσβαση του χειριστή συμβάντων υποδοχής στην παρουσία υποδοχής

Προσπαθώ να κάνω την εφαρμογή μου πιο αρθρωτή μεταφέροντας τους χειριστές συμβάντων υποδοχής σε διαφορετικά αρχεία. συγκεκριμένα, προσπαθώ να το κάνω αυτό

socket.on('foo',fooHandler)
socket.on('bar',barHandler)

Ωστόσο, οι χειριστές δεν φαίνεται να έχουν πρόσβαση στο παράδειγμα υποδοχής. αυτό δεν λειτουργεί

fooHandler = (data) => {
  console.log(socket.id)
}

Η πρίζα δεν έχει οριστεί. Υπάρχει τρόπος να έχω πρόσβαση στην παρουσία υποδοχής εντός της συνάρτησης. Δοκίμασα this.socket.id ή προσδιορίζω το όρισμα socket στον χειριστή μου. δεν φαίνεται να λειτουργούν


  • Μπορείτε να δείξετε τον κωδικό. 16.07.2016
  • Δοκιμάστε απλώς να χρησιμοποιήσετε this. 16.07.2016

Απαντήσεις:


1

Το πρόβλημα ήταν επειδή χρησιμοποιούσα το es6. λειτουργεί τώρα αν χρησιμοποιήσω es5

const skill_suggestions = function(data,res){}
16.07.2016

2

Χρησιμοποιήστε τη συνάρτηση bind

socket.on('foo', fooHandler.bind(socket))
socket.on('bar', barHandler.bind(socket))

fooHandler = (data) {   
// NOTE: You CAN'T use arrow function: fooHandler = (data) => ... here 
// because it will ignore your `bind'
  console.log(this.id)  // `this' is socket
}

Μπορείτε να βελτιστοποιήσετε:

socket.on2 = function (arg, func) {
    socket.on(arg, func.bind(socket))
}
// Then:
socket.on2('foo', fooHandler)
30.05.2020
Νέα υλικά

Καθαρισμός δεδομένων, Επιλογή χαρακτηριστικών, Μοντελοποίηση και Ερμηνευσιμότητα
Ο καθαρισμός δεδομένων, η επιλογή χαρακτηριστικών, η μοντελοποίηση και η ερμηνευτικότητα είναι κρίσιμα βήματα για την ανάπτυξη ενός επιτυχημένου μοντέλου μηχανικής εκμάθησης. Τα ακριβή και..

Code Smell 210 - Dynamic Properties
Η τεμπελιά και η μαγεία φέρνουν ελαττώματα TL;DR: Να είστε ξεκάθαροι με τα χαρακτηριστικά σας Προβλήματα Ευανάγνωστο Ορισμός πεδίου εφαρμογής Απαρατήρητα τυπογραφικά λάθη..

Οπτικοποίηση δεδομένων με γραφήματα Google
του Ejiro Thankgod Η οπτικοποίηση δεδομένων είναι μια εξαιρετική προσέγγιση για την εμφάνιση δεδομένων και τη συμμετοχή κοινού. Ο ανθρώπινος νους είναι συχνά καλύτερος στο να θυμάται..

Το όνομά μου είναι Abdul Qudus.abd
Το όνομά μου είναι Abdul Qudus.abd Είμαι διαδικτυακός συγγραφέας και γράφω άρθρα. Έχω 3ετή εμπειρία στη διαδικτυακή συγγραφή. οπότε θα είμαι ο καλύτερος συγγραφέας στην πλατφόρμα σας. είμαι ο..

Το Python Selenium Web Scraping σας κατέβασε το 2023; Εκκαθαρίστε την προσωρινή μνήμη και ενισχύστε τα αποτελέσματά σας!
Η απόξεση ιστού με το Python Selenium είναι ένα εξαιρετικό εργαλείο για την εξαγωγή δεδομένων από ιστοσελίδες. Ωστόσο, περιστασιακά, οι ιστοσελίδες ενδέχεται να αποτύχουν να φορτώσουν ή να..

Έννοιες JavaScript που πρέπει να γνωρίζετε για να ξεκινήσετε με το React
Αφού είδα αυτή την ερώτηση να τίθεται αμέτρητες φορές, πιστεύω ότι μπορεί να είναι χρήσιμο σε πολλούς ανθρώπους εκεί έξω να έχουν μια σαφή κατανόηση του τι χρειάζεται να είναι γνωστό στο..

Χρήση της C++ ως γλώσσας δέσμης ενεργειών, μέρος 8
Βελτίωση κλήσεων λειτουργιών API με χρήση ενσωματωμένης συναρμολόγησης Έχω πειραματιστεί με την ενσωματωμένη συναρμολόγηση στο παρελθόν με κάποια επιτυχία. Είναι περίπλοκο και εύκολο να κάνεις..