javascript - 返回一个等待的值会返回一个 Promise? (es7 异步/等待)

标签 javascript async-await ecmascript-2017

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 预设来编译它。

最佳答案

异步函数返回 promise 。为了做你想做的事,试试这样的事情

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

您还可以在 wrapper() 上等待,就像来自另一个异步函数上下文的其他 promise 一样。

console.log(await wrapper());

关于javascript - 返回一个等待的值会返回一个 Promise? (es7 异步/等待),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39812505/

相关文章:

javascript - 使用node-postgres执行查询时,aws lambda不返回任何内容

javascript - 当前结束时如何在 HTML5 中播放下一个音轨?

javascript - 将二维数组转换为对象的好方法

javascript - flexWrap 不适用于 React Native 中的 <Text> 元素

javascript - Google UiApp 中的 Google Apps 脚本验证问题

python - Python 3.4 中的 "async with"

c# - 了解 WebClient UploadString() 与 UploadStringTaskAsync 的异步

javascript - Ember GroupableMixin 使用 groupProperty

javascript - 点击ID并打开URL?

javascript - 如何在 async/await 下重写一个函数?