首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES8使用具有异步和等待的箭头函数

ES8使用具有异步和等待的箭头函数
EN

Stack Overflow用户
提问于 2017-08-23 07:17:41
回答 2查看 6.1K关注 0票数 4

我目前正在学习如何使用ES8的提取、异步和等待--我目前有以下代码:

代码语言:javascript
复制
const url = "https://api.icndb.com/jokes/random";

async function tellJoke() {
  let data = await (await fetch(url)).json();
  return data.value.joke;
}

tellJoke().then(data => console.log(data));

控制台:

代码语言:javascript
复制
"Chuck Norris can dereference NULL."

但是我发现了一个使用箭头函数的片段,问题是我不知道如何以我在当前示例中所做的方式返回我的值。

片段:

代码语言:javascript
复制
const fetchAsync = async () => 
await (await fetch(url)).json()

如果这不是最好的做法,也欢迎任何进一步的阅读。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-23 07:22:14

您可以再次使用与以前相同的方法来缩短通常的时间。

代码语言:javascript
复制
async function tellJoke() {
  let response = await fetch(url);
  let data = await response.json();
  return data.value.joke;
}

为你的实施干杯。作为一条单线线,它可以是这样的:

代码语言:javascript
复制
const tellJoke = async () => (await (await fetch(url)).json()).value.joke;
票数 5
EN

Stack Overflow用户

发布于 2017-08-23 07:19:30

在函数中使用相同。如果代码中没有body表达式(witout {}),它将返回语句的结果。在本例中,是await (await fetch(url)).json().value.joke的结果。

代码语言:javascript
复制
const fetchAsync = async () => (await (await fetch(url)).json()).value.joke;

或者多线身体。使用body表达式{},您需要显式地返回简单函数中的内容。

代码语言:javascript
复制
const fetchAsync = async () => {
   const result = await fetch(url);
   const data = await result.json();
   return data.value.joke;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45833061

复制
相关文章

相似问题

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