2016-07-28 27 views
5

W funkcji asynchronicznej, mogę dostać wartości asynchronicznego tak:łańcuchowe funkcje asynchroniczny

const foo = await myAsyncFunction()

Jeśli chcę wywołać metodę na wynik, z funkcją synchronizacji zrobiłbym coś takiego myAsyncFunction().somethingElse()

Czy można łączyć wywołania z funkcjami asynchronicznymi lub czy należy przypisać nową zmienną dla każdego wyniku?

+1

nie wiem o ES7, ale w innych językach użycie nawiasów wokół 'await' wypowiedzi funkcji łańcuchowych. – 4castle

+1

'czekaj myAsyncFunction(). Then (x => x.somethingElse())' :-) – Bergi

+0

'async/await' nie jest częścią ES7. –

Odpowiedz

14

Możesz oczekiwać w wyrażeniu, bez potrzeby przypisywania go do nowej zmiennej.

const foo = await (await myAsyncFunction()).somethingElseAsync() 

Lub jeśli chcesz wywołać metodę synchronizacji na wynik:

const foo = (await myAsyncFunction()).somethingElseSync() 
+6

Nie jestem pewien, czy to było oczywiste, ale zewnętrzne 'oczekuj' jest potrzebne tylko wtedy, gdy' cośElse' jest również asynchroniczne. – 4castle

+0

@ 4castle Odpowiedź została zmieniona dla jasności na temat tego – RyanZim

+0

, co jeśli pierwszą metodą jest 'sync' i drugi' async'? – NSjonas