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预设来编译它。
答案 0 :(得分:12)
异步函数返回promise。为了做你想做的事,试试这样的事情
wrapper().then(someString => console.log(someString));
您也可以在wrapper()
上等待来自其他异步函数上下文的其他承诺。
console.log(await wrapper());
答案 1 :(得分:2)
如果您希望异步函数立即返回值,则可以使用Promise.resolve(theValue)
async waitForSomething() {
const somevalue = await waitForSomethingElse()
console.log(somevalue)
return Promise.resolve(somevalue)
}
IMO异步等待关键字还需要一个,解决
写起来会很好 返回解决&#39;你好&#39;
或只是
resolve 'hello'