1 pièce(s) jointe(s)
Retourner un état vrai/faux avec une function async
Bonjour à tous,
J'utilise une fonction pour mettre à jour une valeur dans une base de donnée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| /* Save Chart settings */
const saveChartSettings = async(field:string, value:number) => {
console.log( "SensorID:", id_sensor , "DB field:", field, "Value:",JSON.stringify(value,null,1))
try {
const response = await fetch('https://api.site-site.ch/putChartSettings.inc.php', {
method: 'POST',
headers:{
accept:'application(json',
Authorisation: 'key',
},
body: JSON.stringify({
id_sensor: id_sensor,
field: field,
value: value
})
})
if(!response.ok){
setThresholdError("[Save Threshold] Failed to fetch the API (check the path)")
}
const json = await response.json();
console.info("Response:", json);
if(json.response=="200"){
return 1
}
else{
return 0
}
}catch(err){
setThresholdError("[Save setting] Check API path. " + err)
} finally {
}
} |
Je me rends compte que j'ai besoin que la fonction me retourne 1 ou un 0 si le champs a été mis à jour, ou si aucune modification à eu lieu. Une erreur doit returner la valuer -1.
Pour le moment, j'ai ajouté 'reurn 1' et 'return 0'
J'ai aussi modifié ceci comme cela
Code:
1 2 3 4 5 6
| if(saveChartSettings('border-color', value) == 1 ){
setIsBorderColorSaved(1)
}
else{
setIsBorderColorSaved(0)
} |
Ce qui me génère une erreur
Pièce jointe 671983
Mon problème est que je ne sais pas comment résoudre ce problème. Je comprends qu'il manque un élément await. Mais ou?
J'ai essayé ceci sans succès
Code:
1 2 3 4 5 6
| if(await saveChartSettings('border-color', value) == 1 ){
setIsBorderColorSaved(1)
}
else{
setIsBorderColorSaved(0)
} |
je ne comprends pas aussi la ntion de Promise, je suis un peu largué.
Pouvez-vous m'éclairecir?
Mercii