首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >async/await /函数返回赋值

async/await /函数返回赋值
EN

Stack Overflow用户
提问于 2018-01-02 19:03:50
回答 1查看 395关注 0票数 1

目前有一个简单的函数:

代码语言:javascript
复制
async function getItem(id) {
  const item = await ... doing a bunch of time consuming stuff
  return item;
}

来自同步语言,仍然从表面上理解异步/等待;我原本希望下面的代码返回已解决的项:

代码语言:javascript
复制
const item = getItem('items-8');
console.log(item); // Just getting a promise

这个问题有点“表面化”,但作为async/await解决回调的一种方式,我希望能走得更远,甚至避免这种情况。

有没有可能用async/awaits获得这样的单行变量赋值?语法/代码结构是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-02 19:36:23

async..await是ES6承诺的语法糖,它允许以类似同步的方式编写异步代码。使用promises的代码不能是同步的,因为promises是异步的。

为了以同步方式编写,使用getItem的代码也应该驻留在async函数中。如果它是顶级的,并且没有驻留在另一个函数中(比如应用程序初始化代码),那么它可以驻留在async IIFE中。

要么就是

代码语言:javascript
复制
getItem('items-8').then(item => {
  ...
});

代码语言:javascript
复制
// inside `async` function
const item = await getItem('items-8');
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48059799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档