const ret = () => new Promise(resolve => setTimeout( () => resolve('somestring'), 1000));
async function wrapper() {
let someString = await ret();
return someString;
}
console.log( wrapper() );
ログPromise { <pending> }
; 'somestring'
ではなくPromiseを返すのはなぜですか?
これをコンパイルするためにBabel ES7プリセットを使用しています。
非同期関数はpromiseを返します。あなたが望むことをするために、このようなことを試してください
_wrapper().then(someString => console.log(someString));
_
別の非同期関数のコンテキストからの他のpromiseのようにwrapper()
を待つこともできます。
_console.log(await wrapper());
_
非同期関数がすぐに値を返すようにする場合は、Promise.resolve(theValue)を使用できます。
async waitForSomething() {
const somevalue = await waitForSomethingElse()
console.log(somevalue)
return Promise.resolve(somevalue)
}
IMO async awaitキーワードにはもう1つ必要です。解決してください
return resolve 'hello'と書いておくといいでしょう
あるいは単に
resolve 'hello'