2017-01-13 20 views
6

Uczę się funkcji strzałki tłuszczu ES6. Jaki jest poprawny sposób zmiany tego kodu, aby móc umieścić kolejną linię, nawet const a = 100; we wskazanym miejscu, aby móc dodać więcej linii do tej funkcji?Jednokreskowa funkcja Multi-Line ES6 Fat Arrow?

IMAdded: (options, args) => ({ 
    IMAdded: { 
     filter: newIM => true, *need to add another line here* 
    }, 
}), 

Aktualizacja:

Oto kod, który działa ES6:

const subscriptionManager = new SubscriptionManager({ 
    schema, 
    pubsub, 
    setupFunctions: { 
     APPTAdded: (options, args) => ({ 
      APPTAdded: { 
       filter: appointment => (true), 
      }, 
     }), 
}); 

chciałbym dodać kilka linii do kodu, który zwraca true.

+0

w ** IMAdded ** masz obiekt (a nie funkcję), musisz zrobić: ** a: 100 **, następnie odczytać jako IMAdded.a // => 100 – Hosar

+0

Jeśli pokażesz nam Odpowiedni sposób ES5, aby zadeklarować, co próbujesz zrobić, możemy łatwo pomóc ci zmienić na ES6 z grubymi strzałkami. Z tego, co teraz pokazujesz, nie jest wystarczająco jasne, co próbujesz osiągnąć, abyśmy wiedzieli, jak je naprawić. Masz kilka kombinacji nieprawidłowej składni i deklarujesz obiekty, w których nie jesteśmy pewni. Proszę wyjaśnić cel. Najbardziej prawdopodobnym sposobem przedstawienia celu byłoby pokazanie działającego kodu ES5 dla tego, co próbujesz zrobić. – jfriend00

+0

Dzięki za porady facetów. Nie mam pojęcia, jak to będzie wyglądać w ES5. Zaktualizuję wpis, by wyświetlić więcej informacji. – VikR

Odpowiedz

14

Jeśli chcesz przekonwertować następujące metody do posiadania większej liczby linii:

{ 
    filter: appointment => true 
} 

Trzeba dodać nawiasy klamrowe i return oświadczenie:

{ 
    filter: appointment => { 
    // ... add your other lines here 
    return true; 
    } 
} 
1
filter: appointment => true, 
... 

jest (i nawiasy aren 't potrzebne około true) skrót do

filter: appointment => { 
    return true; 
}, 
... 

która jest skrótem dla

filter: function (appointment) { 
    return true; 
}.bind(this), 
... 

Każda kwota linii może zostać dodana przed return oświadczeniu.