Trong JavaScript, làm thế nào được báo cáo kết quả sau đây để được giải thích:ưu tiên vận hành:! và chờ đợi
cond1 && !await f()
Đây là một đoạn trích từ dòng
if(cond1 && !await f()){
do_stuff();
}
bên trong một ứng dụng sản xuất. chrome có vẻ là tốt với nó, nhưng trên ios điều này gây ra một lỗi khi đọc
unexpected identifier 'f'. Expected ')' to end an if condition.
Có vẻ như nếu ios biến !await f()
vào (!await)(f())
thay vì !(await f())
.
Bây giờ cho câu hỏi của tôi: Theo số ECMA-262 giải thích chính xác dòng trên là gì?
P.S .: Chúng tôi đã sửa mã cho ios bằng cách thay đổi nó để
var f_result = await f();
if(cond1 && !f_result){
do_stuff();
}
Dường như công cụ ios JS của bạn chưa hỗ trợ tính năng không đồng bộ/đang chờ. Bạn đang sử dụng phiên bản ứng dụng (trình duyệt) nào? – Bergi
@Bergi tốt, thiết bị ios sản xuất của chúng tôi vui vẻ làm async/await đang nói khác. Họ chỉ bị nghẹt thở trên tuyên bố chính xác này. – niklasfi
@Bergi về phiên bản: đó sẽ là phiên bản hiện tại. 10.3. http://caniuse.com/#search=await – niklasfi