1

この質問は、async/await の提案に関するものです。私が理解しているように、次の機能:

async function foo() {
   return await someAsyncFn();
   await performSomeOtherAsyncAction();
   doOneLastThing();
}

someAsyncFn() が解決されるとすぐに戻ります。

ただし、戻り値がない場合はどうなりますか。

async function() {
       await someAsyncFn();
       await performSomeOtherAsyncAction();
       doOneLastThing();
}

返された promise は、次のような関数を終了した直後に解決されますか?

function foo() {
    someAsyncFn()
        .then(() => {
            return performSomeOtherAsyncAction();
        })
        .then(() => {
            doOneLastThing();
        });
}

または、次のように内部の約束が解決されるまで待ちますか。

function foo() {
    return someAsyncFn()
        .then(() => {
            return performSomeOtherAsyncAction();
        })
        .then(() => {
            doOneLastThing();
        });
}
4

2 に答える 2

3

async/await非同期プロセスを同期「スタイル」で記述できます。promise を返すことを除いて、同期関数が機能することを期待するのとまったく同じように機能します。つまり、最後の例のように動作します。すべてのステートメントを実行し、 に解決される promise を返しますundefined

于 2017-01-06T16:52:23.857 に答える