我目前正在学习如何使用ES8的fetch,async等待我目前有这个代码可以运行:
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));
控制台:
"Chuck Norris can dereference NULL."
但是我找到了一个使用箭头功能的代码片段,问题是我不知道如何在我当前的例子中按照我的方式返回我的值。
片段:
const fetchAsync = async () =>
await (await fetch(url)).json()
如果这不是最佳做法让我知道,欢迎任何进一步阅读。
答案 0 :(得分:5)
您可以再次使用与缩短常规
相同的方法async function tellJoke() {
let response = await fetch(url);
let data = await response.json();
return data.value.joke;
}
到您的实施。作为一个单行,它可以看起来像这样:
const tellJoke = async () => (await (await fetch(url)).json()).value.joke;
答案 1 :(得分:3)
在功能中使用相同。如果代码中没有正文表达式(没有sh test.sh
),它将返回语句的结果。在这种情况下,{}
。
await (await fetch(url)).json().value.joke
或多线体。使用正文表达式const fetchAsync = async () => (await (await fetch(url)).json()).value.joke;
,您需要在简单函数中显式返回。
{}