-3
votes

Promettre l'objet ne retourne pas de valeur

J'essaie d'obtenir la valeur de Asset CODE>:

[object Promise]


6 commentaires

Utilisation de promesses - JavaScript | MDN


Duplicatésible possible de Pourquoi pourquoi Ma variable est-elle non altérée après que je la modifie à l'intérieur d'une fonction? - Référence de code asynchrone


@ zero298 qui n'est pas pertinent ici


@ user633183 je suis en désaccord. C'est un problème qui ne comprend pas comment prometteur , une primitive asynchrone. Cette question précise comment utiliser prometteur en détail.


@ zero298 L'astucieux n'essaie pas de modifier une variable, c'est une erreur très courante lorsqu'il s'agit de valeurs asynchrones, mais ce n'est pas une erreur que l'astucieux fait ici.


@ user633183


3 Réponses :


0
votes

Vous devrez utiliser une fonction.

const asset = getAssetInformation(11002)
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });


0 commentaires

-1
votes

promet de retourner une autre promesse.

Le moyen de déballer et de travailler avec une promesse consiste à traverser la fonction .Chen (), qui fonctionnera après les retours prometteurs. P>

getAssetInformation(11002)
.then((response) => {
//What you returned will be here, use response.data to get your data out.

} )
.catch((err) => {
//if there is an error returned, put behavior here. 
})


0 commentaires

0
votes

Utiliser async code> et attendre code> est un moyen pratique -

p>

function axios(query) { // fake axios, for demo
  return new Promise (r =>
    setTimeout(r, 1000, { asset: query.params.assetId })
  )
}

function getAssetInformation(id) {
  return axios({
    method: 'GET',
    url: "/asset-information",
    params: {assetId: id}
  })
}

async function main() { // async
  const asset = await getAssetInformation (11022) // await
  console.log(asset)
}

main()
// 1 second later ...
// { asset: 11022 }


0 commentaires