Votre code implique une fonction asynchrone utilisant une promesse, mais lorsque vous essayez d'accéder au jeton à l'intérieur de la promesse, vous êtes rencontrer une "Promesse {
Une promesse représente une opération dont la réalisation peut prendre du temps, et elle fournit un moyen de gérer le résultat de l'opération soit lorsqu'elle est résolue (achèvement réussi) ou rejetée (échec). Initialement, une promesse est en attente jusqu'à ce que son opération soit terminée.
Dans votre code, vous renvoyez une promesse de google.login. Lorsque vous essayez d'accéder au jeton immédiatement, la promesse est toujours en attente ; cela n'est pas encore résolu. Cela signifie que vous recevrez l'état en attente sous la forme Promise {
Pour obtenir la valeur résolue d'une promesse, vous devez utiliser ses méthodes .then ou .catch. Ces méthodes fournissent des gestionnaires qui s'exécuteront lorsque la promesse sera résolue ou rejetée, respectivement. En enchaînant les gestionnaires .then, vous pouvez effectuer des actions basées sur la valeur résolue de la promesse.
let AuthUser = function(data) { return google.login(data.username, data.password).then(token => { return token } ) } let userToken = AuthUser(data) console.log(userToken) // Promise { <pending> } userToken.then(function(result) { console.log(result) // "Some User token" })
Dans cet exemple, nous ajoutons un gestionnaire .then à la promesse renvoyée par AuthUser. Le gestionnaire s'exécutera lorsque la promesse sera résolue et recevra la valeur résolue en tant que paramètre. L'instruction console.log à l'intérieur du .then imprimera ensuite le jeton utilisateur réel.
Les promesses offrent une manière structurée de gérer les opérations asynchrones. Pour accéder à la valeur résolue d'une promesse, il est nécessaire de la chaîner avec les gestionnaires .then ou .catch. Ce n'est qu'une fois la promesse résolue que la valeur résolue sera disponible pour votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!