S'il vous plaît, comment puis-je enregistrer la sortie de l'extraction dans une variable - pour pouvoir travailler avec elle comme avec un objet?
Voici le code:
var obj;
fetch("url", {
method: "POST",
body: JSON.stringify({
"filterParameters": {
"id": 12345678
}
}),
headers: {"content-type": "application/json"},
//credentials: 'include'
})
.then(res => res.json())
.then(console.log)
Le dernier console.log
Affichera un objet. Mais quand j'ai essayé de l'enregistrer dans la variable .then(res => obj = res.json())
, la console.log(obj)
ne contiendra pas l'objet, mais la promesse.
Une idée s'il vous plaît, comment le transformer en un objet enregistré dans la variable?
.json()
est une méthode asynchrone (elle retourne une promesse elle-même), vous devez donc affecter la valeur analysée dans la prochaine .then()
var obj;
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(res => res.json())
.then(data => obj = data)
.then(() => console.log(obj))
Au lieu de stocker dans une variable, créez une fonction qui renverra des données, puis stockez-les dans une variable.
async fetchExam(id) {
try {
const response = await fetch(`/api/exams/${id}`, {
method: 'GET',
credentials: 'same-Origin'
});
const exam = await response.json();
return exam;
} catch (error) {
console.error(error);
}
}
Appelez ensuite cette fonction pour obtenir des données
async renderExam(id) {
const exam = await fetchExam(id);
console.log(exam);
}