J'ai un problème pour convertir la promesse retournée par le service au contrôleur. Ce que je veux, c'est créer un tableau d'objets JSON à partir des données contenues dans promesse. Voici ce que je reçois dans le contrôleur:
Voici la ligne utilisée pour imprimer ces données:
console.log("controller unmatched: ", unmatched.getData(sFilter));
Ici, "inégalé" est le service, et getData () est sa fonction.
Merci!
Une promesse représente une valeur qui sera disponible dans le futur ou jamais. Cela signifie que sa valeur éventuelle ne peut pas être retournée par votre fonction unmatched.getData()
.
Ce que vous devez faire est de faire que unmatched.getData()
retourne la promesse réelle et ensuite vous prenez des mesures lorsque cette promesse se résout:
unmatched.getData(sFilter).then(function(result) {
console.log("controller unmatched: ", result);
});
Je crois que ce que vous voulez vraiment faire, c'est économiser une valeur à laquelle la promesse se résout, pas la promesse elle-même.
unmatched.getData(sFilter).then(response => {
const json = JSON.stringify(response);
});
Cela est dû à la nature des promesses - elles sont asynchrones.
L'objet Promise représente l'achèvement (ou l'échec) éventuel d'une opération asynchrone et sa valeur résultante.
Source: Promesses sur MDN
Les promesses fonctionnent de manière asynchrone:
unmatched
.getData(sFilter)
// wait for its resolution
.then(data => console.log(JSON.stringify(data))
;
si vous voulez obtenir les objets JSON de la promesse, je pense que vous pouvez utiliser la ligne de code ci-dessous
response.json ()