Soru Ok işlevi “ifade bekleniyor” sözdizimi hatası


Bu kodu değiştirmek istiyorum:

var formatQuoteAmount = function (tx) {
    return Currency.toSmallestSubunit(tx.usd, 'USD');
};
var quoteAmounts = res.transactions.map(formatQuoteAmount);

anonim bir ok işlevine. Bunu yazdım:

var quoteAmounts = res.transactions.map(tx => Currency.toSmallestSubunit(tx.usd, 'USD'));

alırım expression expected oku, sözdizimi hatası. Ben baktım varsayılan sözdizimi burada ve kodumun sözdizimi doğru gibi görünüyor. Problemin ne olabileceği hakkında bir fikrin var mı?

Bu sözdizimi ile çalışıyorum:

    var quoteAmounts = res.transactions.map(function (tx) {
        return Currency.toSmallestSubunit(tx.usd, 'USD')
    });

ama ben bir ok-fonksiyonu ile bir tek liner yapmak istiyorum.

Üzerinde çalışan node v5.3.0


44
2018-02-22 09:49


Menşei


ne tutuyor / çıktı console.log(res.transactions); - Jai
Hangi ortamda çalışıyorsunuz? - nils
@ nils, içinde node.js. OP etiketlerini güncelledim. - Milkncookiez
@Milkncookiez Hangi versiyonda? - Ben Fortune
Bu hatayı Node v5.3.0'da kopyalayamıyorum. İle iki kez kontrol ettiniz mi node --version? - McMath


Cevaplar:


Hata vardı expression expected tarafından rapor edildi WebStorm Bir Node.js programını düzenlerken. Bu durumda çözüm, dil sürümünü bu özelliği destekleyen bir sürüme ayarlayacaktır.

enter image description here


108
2018-02-26 11:01



ECMAScript 6 olarak değiştirildi, ancak hala bu hatayı satırda alıyorum - var texts = entity.name.split(" ").filter(s => s); (dizgeyi ayırmak, boş sonuçlardan kaçınmak). Bunu nasıl çözeceğine dair bir fikrin var mı? - Itai
Bu sorunu alıyorum ve bu dil sürümü ayarını ES6'dan başka bir şeye çevirip tekrar geri dönmek zorundayım. Gerçekten sinir bozucu. - greg
Bu aynı zamanda benim nodejs projem için PHPStorm'da çalıştı. Daha önce belirttiğiniz gibi, bu ayar bir JavaScript ayarıdır (Javascript'te değil nodejs'de bulunur). - Alexander Taubenkorb
ayrıca IntelliJ Idea'deki sorunu çözdü - jjj


Benim için bu işi yaptım. (1) JavaScript dilini @ Joe23 ile seçilen cevapta gösterildiği gibi ECMAScript 6 olarak değiştirdim

(2) Webstorm projesini / uygulamasını kapatıyorum.

(3) Proje klasörüne gidin ve silin .idea klasörde. Bu proje / uygulama hakkında bilgi tutmak için oluşturulan webstorm klasörü olduğuna inanıyorum.

(4) Projemi webstormda tekrar açıyorum ve hatalar gitti.


12
2018-05-26 08:06



Bunu denedim ve ek bir yön buldum. Bunu Dosya> Varsayılan Ayarlar'da DEĞİŞTİRMEYİN, çünkü sadece yeni projeleri etkiler. Bunun yerine, bunu Webstorm> Tercihler> Diller ve Çerçeveler -> Javascript'te değiştirmelisiniz. Ve Apply'a vurmayı unutma! Bunun gibi can sıkıcı, anlamsız, amaçsız hatalar (WebStorm, 6.0 var olduğunda ECMAScript 5.1'i varsayılan olarak kullanmaktadır ve sözdizimi çok yaygındır ??) sık sık Visual Studio'ya ve C # ye geri dönmemin bir sebebidir - eminim Herhangi bir geliştirici en iyi bilinen IDE ve dil lehine söyleyecektir. - user3685427


Sözdiziminiz doğru ve Nodejs ok işlevlerini destekliyor, ancak varsayılan olarak etkin değilsiniz.

Etkinleştirmek için düğüm işlemini başlattığınızda "--harmony" bayrağını eklemelisiniz.


0
2018-02-22 10:04



Neden reddetme lütfen? - sitifensys
Ok fonksiyonları varsayılan olarak etkindir - McMath
nodejs.org/en/docs/es6/... ok işlevlerinin çalışma zamanı bayrağı gerektirmediğini söylüyor. :) - Milkncookiez
Hmm yep, benim kötü. Benim dizüstü bilgisayardaki düğüm oldukça görünüyor (0.12). Kod snippet'inde herhangi bir sorun görmüyorum. - sitifensys