17
const ret = () => new Promise(resolve => setTimeout( () => resolve('somestring'), 1000));

async function wrapper() {
    let someString = await ret();
    return someString;
}

console.log( wrapper() );

ログに記録しPromise { <pending> }ます。の代わりに Promise を返すのはなぜ'somestring'ですか?

これをコンパイルするために Babel ES7 プリセットを使用しています。

4

2 に答える 2

19

非同期関数は promise を返します。あなたが望むことをするために、このようなことを試してください

wrapper().then(someString => console.log(someString));

wrapper()別の async 関数のコンテキストから、他の promise のように await することもできます。

console.log(await wrapper());
于 2016-10-02T00:06:24.227 に答える