2016-04-09 9 views
1

バベルのすべてのバージョンは_asyncToGeneratorコールにawait文を翻訳し、それは明らかに、いくつかの欠点があります。なぜbabelは非同期/リネンタを待っているのですか?

  1. コードサイズは
  2. 劇的に成長する構文の私の理解からregeneratorRuntimeライブラリ

が必要です私はどんなawaitPromise#thenコールと同等であるべきだと思うので、以下のコード:

正しく Promiseチェーンに複数の await文または Promise#thenawait文のも、ミックスをマップすることも可能ですので、私はいくつかのケースどこを逃したしなければならない。このように

let promise$of$getUser$ = getUser(); 
$promise$of$getUser$.then(
    $result$ => console.log($result$), 
    $error$ => console.error($error$) 
); 

はちょうど同じです純粋なPromise#thenawaitステートメントには適していません。

答えて

1

他の2つのプラグイン(async-to-generatorおよびasync-to-module-method)を使用できます。

knedenと呼ばれる実験的なプラグインがあります。これはあなたが提案していることをお試しになります(約束するには非同期です)。それはまだWIPであり、すべてのケースを考慮しておらず、ほとんど可能ではありません。

1

私はあなたがループを見下ろすていると思う:

for (let userId of userIds) { 
    const user = await getUser(userId); 
    console.log(user); 
} 
+0

おかげで、私はループや条件を適切に取り扱うことが可能であるが、ハード本当に見つけるいくつかの研究の後に、これらすべての複雑さのミックスがサポートしない理由かもしれません翻訳をPromiseに直接待つ – otakustay

関連する問題