En JavaScript, comment est la déclaration suivante à interpréter:priorité des opérateurs:! et attendre
cond1 && !await f()
Voici un extrait de la ligne
if(cond1 && !await f()){
do_stuff();
}
dans une application de production. chrome semble être très bien avec elle, mais sur ios cela provoque une erreur de lecture
unexpected identifier 'f'. Expected ')' to end an if condition.
Il semble que ios tourne !await f()
en (!await)(f())
au lieu de !(await f())
.
Maintenant à ma question: Selon ECMA-262 quelle est l'interprétation correcte de la ligne ci-dessus?
p.s .: Nous avons fixé le code pour ios en changeant à
var f_result = await f();
if(cond1 && !f_result){
do_stuff();
}
Il semble que votre moteur ios JS ne supporte tout simplement pas async/wait. Quelle version d'application (navigateur) utilisez-vous spécifiquement? – Bergi
@Bergi bien, nos appareils de production ios heureusement faire async/attendre disent le contraire. Ils étouffent seulement sur cette déclaration exacte. – niklasfi
@Bergi à propos de la version: ce serait le courant. 10.3. http://caniuse.com/#search=await – niklasfi