2016-02-22 12 views
42

मैं इस कोड को बदलने के लिए चाहते हैं:तीर समारोह "अभिव्यक्ति की उम्मीद" सिंटेक्स त्रुटि

var formatQuoteAmount = function (tx) { 
    return Currency.toSmallestSubunit(tx.usd, 'USD'); 
}; 
var quoteAmounts = res.transactions.map(formatQuoteAmount); 
एक गुमनाम तीर समारोह में

। मैं इस लिखा है:

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

मैं तीर पर expression expected सिंटेक्स त्रुटि मिलता है। मैंने the default syntax here देखा और ऐसा लगता है कि मेरे कोड का सिंटैक्स सही है। कोई विचार क्या समस्या हो सकती है?

मैं इसे इस वाक्य रचना के साथ काम किया है:

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

लेकिन मैं इसे एक एक लाइनर बनाने के लिए, तो तीर के समारोह के साथ चाहते हैं।

पर node v5.3.0

+1

यह 'console.log (res.transactions) का होल्डिंग/आउटपुट क्या है;' – Jai

+1

आप इसे किस वातावरण में चला रहे हैं? – nils

+0

@nils, 'node.js' में। मैंने ओपी टैग अपडेट किया। – Milkncookiez

उत्तर

95

मुझे त्रुटि वेबस्टॉर्म द्वारा एक Node.js प्रोग्राम संपादित करते समय त्रुटि मिली थी। इस मामले में समाधान भाषा संस्करण को उस संस्करण में सेट करना है जो इस सुविधा का समर्थन करता है।

enter image description here

+12

ईसीएमएस्क्रिप्ट 6 में बदल गया, लेकिन मुझे अभी भी यह त्रुटि लाइन पर मिल रही है - 'var texts = entity.name.split ("")। फिल्टर (एस => एस); '(स्ट्रिंग को विभाजित करने के लिए, खाली परिणामों से परहेज करना)। किसी भी विचार को हल करने के लिए कैसे? – Itai

+0

मुझे यह समस्या मिलती है और मुझे उस भाषा संस्करण सेटिंग को ES6 से कुछ और फिर फिर से टॉगल करना होगा।वास्तव में गुस्से वाला। – greg

+0

यह मेरे नोडजेस प्रोजेक्ट के लिए पीएचपीएसटॉर्म में भी काम करता था। जैसा कि आपने पहले ही बताया है, यह सेटिंग एक जावास्क्रिप्ट सेटिंग है (जावास्क्रिप्ट में मिली, नोडजेस नहीं)। –

0

आपका वाक्य रचना चल रहा है सही है और NodeJS तीर कार्यों का समर्थन करता है, लेकिन आप इसे डिफ़ॉल्ट रूप से सक्षम नहीं है।

जब आप इसे सक्षम करने के लिए नोड प्रक्रिया शुरू करते हैं तो आपको "--armony" ध्वज जोड़ना चाहिए।

+1

क्यों डाउनवोट कृपया? – sitifensys

+0

तीर फ़ंक्शंस [डिफ़ॉल्ट रूप से सक्षम हैं] (https://nodejs.org/en/docs/es6/#which-features-ship-with-node-js-by-default-no-runtime-flag-required) – McMath

+1

https://nodejs.org/en/docs/es6/#which-features-ship-with-node-js-by-default-no-runtime-flag-required कहता है कि तीर फ़ंक्शंस को रन-टाइम ध्वज की आवश्यकता नहीं होती है। :) – Milkncookiez

11

निम्नलिखित मैं क्या है कि काम किया है मेरे लिए है। (1) मैं जावास्क्रिप्ट भाषा विकल्प को ईसीएमएस्क्रिप्ट 6 में बदलता हूं क्योंकि चयनित उत्तर में @ जो 23

(2) मैं वेबस्टॉर्म प्रोजेक्ट/एप्लिकेशन बंद करता हूं।

(3) प्रोजेक्ट फ़ोल्डर पर नेविगेट करें और हटाएं .idea इसमें फ़ोल्डर। मेरा मानना ​​है कि यह परियोजना/अनुप्रयोग के बारे में जानकारी रखने के लिए उत्पन्न फ़ोल्डर वेबस्टॉर्म है।

(4) मैंने अपनी परियोजना को वेबस्टॉर्म में फिर से खोल दिया और त्रुटियां चली गईं।

+1

में इस मुद्दे को भी हल किया है मैंने कोशिश की है, और एक अतिरिक्त पहलू पाया है। फ़ाइल> डिफ़ॉल्ट सेटिंग्स में इसे समायोजित न करें, क्योंकि यह केवल नई परियोजनाओं को प्रभावित करता है। इसके बजाय, आपको इसे वेबस्टॉर्म> प्राथमिकताएं> भाषाएं और फ्रेमवर्क -> जावास्क्रिप्ट में बदलना होगा। और लागू करने के लिए मत भूलना! इस तरह की परेशान, व्यर्थ, जानबूझकर त्रुटियां (WebStorm 6.0 के मौजूद होने पर डिफ़ॉल्ट रूप से ECMAScript 5.1 का उपयोग क्यों करता है और इसका वाक्यविन्यास इतना आम है ??) एक कारण है कि मैं अक्सर विजुअल स्टूडियो और सी # पर वापस जाता हूं - हालांकि मुझे यकीन है कोई भी डेवलपर कहता है कि उनके सबसे जाने-माने आईडीई और भाषा के पक्ष में। – user3685427

संबंधित मुद्दे