Promesses es6 et superagent
Je suis d'essayer d'utiliser es6 promesses avec superagent. Je suis d'essayer d'appeler une fonction qui a un superagent demande enveloppé à l'intérieur.
Request.post(buildReq).then(res => {
if (res.ok) {//process res}
});
Ici est la fonction d'habillage superagent
static post(params) {
superagent
.post(params.url)
.send(params.payload)
.set('Accept', 'application/json')
.end((error, res) => {
return this.Promise.resolve(res);
})
.bind(this);
}
J'obtiens une erreur
enter code here Uncaught TypeError: Cannot read property 'then' of undefined
Lorsque je modifie le retour de la fonction à
static post(params) {
return Promise.resolve(superagent
.post(params.url)
.auth(params.auth.username, params.auth.password)
.send(params.payload)
.set('Accept', 'application/json')
.end((error, res) => {
return this.Promise.resolve(res);
})
);
}
On dirait que les données sont renvoyées dans mon navigateur outils de dev, mais je n'arrive pas à dans le .alors la fonction. Comment puis-je obtenir une réponse de la promesse.
OriginalL'auteur rross | 2015-01-15
Vous devez vous connecter pour publier un commentaire.
Il n'a pas d'importance ce que vous êtes de retour à partir de la
end
méthode de rappel, comme il exécuté en mode asynchrone lorsque vous aurez obtenir de réponse et le résultat de l'exécution de rappel est utilisé nulle part. Regarder ici et ici dans le code source.end
méthode renvoiethis
, donc, dans votre deuxième exemple vous êtes à la résolution desuperagent
pas de réponse. Pour obtenir la réponse de votrepost
méthode doit ressembler à:OriginalL'auteur alexpods
Parfois, vous voulez éviter un niveau d'indentation causée par
new Promise(...)
ensuite, vous pouvez utiliser directementPromise.reject
etPromise.resolve
.OriginalL'auteur jsdario
C'est une version concise, dans le cas où vous besoin de beaucoup de demandes
OriginalL'auteur Cristian Sima