Voilà j'ai un soucis en javascript, peut être basique pour certains, mais qui m’embête beaucoup là
Voici l'idée de ce que je veux faire:
function A(){
var maVariable;
B();// doit modifier la variable maVariable
return maVariable;
}
Le truc c'est que cette fonction me renvoie undefined alors que B() est sensée modifier maVariable . En gros , il faut comprendre que B() s’exécute après mon return, alors que je veux que B() s’exécute avant, bien évidemment (quand je fais des tests avec des alert(), je met un entre B() et return et un dans B(). Celui dans B() apparaît en deuxième).
Quelqu'un peut-il m'aider svp ?
La confiance en soi n'exclu pas le contrôle de son code.
Oui mais je voudrais qu'il prenne une valeur que B() doit lui conférer.
En gros mon B() est une focntion ayant deux fonctions en parametre : un success et un error.
Le success fonctionne avec un switch case qui va en fonction d'un cas ou d'un autre , affecter une valeur à maVariable. Mais apparemment mon traitement ne passe pas dans le bon ordre.
La confiance en soi n'exclu pas le contrôle de son code.
Je ne voulais pas vous embêter avec du code inutile ou difficile à comprendre. Je travaille sur une façon de récupérer des données dans un fichier sur un device qui tourne sous tizen. Voici ce que ca donne:
var dataToReturn = "init";//globale
function getDetail(detail){
var documentsDir;
tizen.filesystem.resolve("documents", function (dir) {
documentsDir = dir;
var file = documentsDir.resolve("myFile.json");// On atteind le fichier cible
file.openStream(
"r",
function(fs) {
var text = fs.read(file.fileSize);
fs.close();
var obj = JSON.parse(text);
switch (detail){
case "data1Value":
dataToReturn = obj.data1;
break;
case "data2Value":
dataToReturn = obj.data2;
break;
case "data3Value":
dataToReturn = obj.data3;
break;
default:
dataToReturn = null;
}
alert(dataToReturn);//alert qui apparait en 2e
}, function (e) {
alert("Error " + e.message);
}, "UTF-8");
});
alert(dataToReturn);//alert qui apparait en 1er
return dataToReturn;
}
La confiance en soi n'exclu pas le contrôle de son code.
Je comprends tout à fait le principe des fonctions asynchrones, et je sais que c'est ça qui m'handicape. Il est vrai que j'ai du mal avec les notions de promise et async/await. Je vais essayer de me pencher plus dessus pour l'adapter à mon code. Je reposterai si je n'y arrive toujours pas :/
En tout cas, merci à tous pour vos retours !
La confiance en soi n'exclu pas le contrôle de son code.
Enfait, pas besoin que la fonction ai un retour, tu peut attendre la fin de son execution :
async function(){
await tyzen.monTraitementQuiEstAsynchrone()
// Ton traitement ici, peu importe lequel
let element = document.querySelector('selector')
}
ce qui veut dire que ta fonction tizen.filesystem.resolve ne renvoie pas de promise, donc c'est à toi de renvoyer une promise dans ta fonction et de la resolve quand la callback que tu as passé en paramètre à la fonction resolve de tizen.filesystem est appelée.
La version finale en utilisant une promise et then() :
Merci beaucoup lk77 , c'est exactement ça dont j'avais besoin ! Mais il me reste une question : Cette fonction me renvoie un objet type Promise. Si je veux récupérer la valeur affichée (abc par exemple) dans une variable (pour un traitement en dehors de la fonction), je fais comment ?
- Edité par LordKalou 8 juillet 2019 à 12:08:25
La confiance en soi n'exclu pas le contrôle de son code.
Merci infiniement, tu me sors une belle épine du pied là , topic résolu !
La confiance en soi n'exclu pas le contrôle de son code.
ordre d’exécution code javascript
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
La confiance en soi n'exclu pas le contrôle de son code.
La confiance en soi n'exclu pas le contrôle de son code.