J'écris une fonction JavaScript qui prend un rappel. Le rappel sera adopté un argument d'erreur si quelque chose ne va pas.
Quels sont les conventions d'appel les meilleurs / la plus standard? P>
'errorormsg' code> string ou a nouvelle erreur ('errorormsg') code> objet? li>
ul> c'est-à-dire, qu'est-ce qui est plus correct - ce code: p> xxx pré> ou ce code: p> xxx pré> ou ceci: p> xxx pré> Si c'est pertinent, mon code sera utilisé à la fois comme module NodeJS et en tant que bibliothèque JavaScript basée sur le navigateur. P> P> P> P> >
4 Réponses :
Vous pouvez spécifier deux rappels, un pour le succès et celui de l'erreur, Â et les deux encapsulés dans un seul argument "Callbacks". C'est le nombre de bibliothèques JavaScript gérant votre besoin. Les fonctions de réussite et d'erreur sont facultatives. Pour spécifier les deux, appelez-le comme ceci: p> Vous pouvez également faire cela: p> Si vous le souhaitez, vous Peut élargir l'objet Callbacks pour supporter d'autres scénarios, tels que "Terminé". P> P>
Ceci est courant dans les bibliothèques Web JS, mais pas dans Node.js.
Vous devez choisir une convention pour votre bibliothèque et coller avec elle; Sinon, c'est arbitraire. Il existe de nombreuses façons différentes de manipuler des erreurs dans JavaScript: P>
combiné avec: p>
Vraiment, c'est entièrement à vous de décider. Cela dépend également de ce que vous essayez de faire. Par exemple, si vous n'avez pas vraiment l'intention de faire quelque chose avec les informations de défaillance, cela ne vaut peut-être pas la charge de construire / passer autour de cette information supplémentaire. Mais vous avez peut-être beaucoup d'informations détaillées sur l'échec que vous souhaitez transmettre à l'utilisateur ou à l'appelant de l'API, auquel cas il fait beaucoup de sens. P>
Choisissez une convention et coller avec elle. Autre que cela, c'est entièrement à vous. P>
La plupart des applications nœud.js utilisent le modèle "Erreur-First" ou le modèle EventMitter code>. VIZ:
// cleaner, perhaps, but more keystrokes
var ee = new EventEmitter
process.nextTick(function () {
...
if (error) {
ee.emit('error', {msg:'delicious'})
} else {
ee.emit('success', bacon)
}
})
return ee
L'insertion de semi-colonie de JS mettra les points-virgules où ils doivent être :)
L'insertion de js de js est peu fiable et doit être évité a >.
Il n'y a aucun moyen de l'éteindre - mieux vous en savez tout le temps. Mettre des points-virgules ne va pas arrêter JS de l'insertion d'un point-virgule dans Retour \ n {FOO: bar} code>, donc si vous n'utilisez jamais des points-virgules, cela ressemblera toujours à
retourner; \ n {..} code> à vous :)
... Nous évitons donc l'insertion de semi-colonne en les utilisant si nécessaire et en évitant certaines nouvelles lignes de déclaration dans lesquelles ils pourraient être insérés.
La mise des points-virgules n'évite pas l'insertion de semi-colon.
Oui, il fait ... Chaque point-virgule que vous avez mis en est un moins que JS insère automatiquement. Mais je vois votre point: il n'y a aucun moyen de le transformer off i>. Tant pis. Au moins, je peux éviter les devinations (tout en lisant mon code) en les insérant moi-même et en évitant certaines nouvelles lignes de déclaration.
semble que nous n'avons pas de réponse moderne ici :)
Vous pouvez maintenant utiliser la promesse pour cela: p> ou plus simple, si l'action est synchrone: p > puis, pour gérer le résultat: p> où p> Donc, au cas où il n'y avait pas de rappel d'erreur (résultat) (résultat) ne sera effectué, en cas d'erreur ErrorHandler («TROZ PAS séparément. Bel exemple de séparation des préoccupations. P> p>