Al momento, quando gestisco un messaggio di successo / fallimento, gestisco entrambi i tipi di risposta tramite lo stesso listener e controllo il tipo di risposta per decidere se si tratta di una risposta positiva o negativa. In questo modo:
server
socket.on('event', function(){
//process request
if (success) {
var data = {
foo : 'useful',
bar : 'info'
}
} else {
var data = 'failure message';
}
socket.emit('eventResponse', data);
}
client
socket.on('eventResponse', function(){
if (typeof data = "object") {
//assume successful response / utilize response data
} else {
//assume failure and utilize data as failure message
}
}
A questo punto, invio sempre un errore come una stringa contenente il messaggio di errore e inviamo sempre il successo come oggetto, contenente i dati di risposta. Penso a questo come una sorta di argomento di dipendenza. Dal momento che non sto definendo delle dipendenze del tipo di input chiare, potrebbe essere considerato una cattiva pratica, o forse perché farlo è più semplice e veloce, potrebbe essere buono. Non sono sicuro.
È una pratica corretta / accettabile per gestire le risposte di errore / successo in questo modo, o dovrei gestire le due separatamente?