je la fonction suivante dans coffeescript:Comment retourner la valeur d'un appel async
newEdge: (fromVertexID, toVertexID) ->
edgeID = this.NOID
@client.methodCall('ubigraph.new_edge', [fromVertexID, toVertexID], (error, value) ->
if(error)
console.log('ubigraph.new_edge error: ' + error)
edgeID = value
)
edgeID
où @ client.methodCall fait référence à la bibliothèque xmlrpc. Ma question est comment retourner la valeur en tant que edgeID. Est-ce que j'utilise un rappel pour ça?
Si tel est le cas, le rappel devrait ressembler à ceci:?
# callback is passed the following parameters:
# 1. error - an error, if one occurs
# 2. edgeID - the value of the returned edge id
newEdge: (fromVertexID, toVertexID, callback) ->
@client.methodCall('ubigraph.new_edge', [fromVertexID, toVertexID], (error, value) ->
if(error)
console.log('ubigraph.new_edge error: ' + error)
edgeID = value
callback(error, value)
)
Même avec un rappel, l'utilisateur du La fonction peut décider quoi faire dans chaque cas, mais fondamentalement, votre réponse: les rappels sont la façon de le faire. était celui que je cherchais. Merci – lowerkey
@lowerkey: Assez vrai, mais les rappels séparés semblent être l'approche habituelle; jQuery utilise au moins des rappels séparés pour les conditions de réussite et d'erreur, de sorte qu'il sera familier à la plupart des gens. J'ai (essayé) pour clarifier ceci. –
La plupart des bibliothèques node.js utilisent un seul callback avec l'erreur comme premier paramètre, ce qui leur permet de se parler assez facilement. Je suggérerais cette manière sur les callbacks séparés. –