重写为异步 + 不使用箭头函数重写
Rewrite as asynchronous + Rewrite without arrow functions
我正在学习 Web 开发代码,目前正在使用 JavaScript 和 Node.js -
我需要
(A.) 在不使用任何箭头函数的情况下重写代码,并且
(B.) 使用 async/await 函数重写代码。
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(res => res.json())
.then((result) => {
items= result.items;
console.log(items);
}),
(error) => {
console.log(error);
}
我们将不胜感激任何帮助,我试图寻求帮助,但我无法理解。
你是说像这样?请让我知道这是否是您想要的以及您是否需要更多信息
async function getBooks() {
try {
const fetchResponse = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699");
const result = fetchResponse.json();
const books = result.items;
console.log(books);
} catch(error) {
console.log(error);
}
}
// await getBooks();
首先,要阅读箭头函数,您必须了解箭头函数中有两种 return 值的方法:
const func = x => x * x; // concise body syntax, implied "return"
const func = (x, y) => { return x + y; }; // with block body, explicit "return" needed
现在,下面将通过以下步骤将使用 promise 链的代码转换为使用 async/await
的代码。通过完成任务 B(将 promise 链替换为 async/await
),您将完成任务 A(没有箭头函数的代码)
如果一个方法 return 是 Promise
,像 fetch
和 Body.json()
一样,你可以等待它的结果:
const res = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699");
const result = await res.json();
items = result.items;
console.log(items);
要在不链接 .catch
的情况下处理错误,请使用 try/catch
块包装代码:
try {
const res = await fetch(
"https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699"
);
const result = await res.json();
items = result.items;
console.log(items);
} catch (error) {
console.log(error);
}
最后,await
关键字只能在异步函数 docs 中使用,这就是为什么你必须将它包装到用 async
:
声明的函数中
async function run() {
try {
const res = await fetch(
"https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699"
);
const result = await res.json();
items = result.items;
console.log(items);
} catch (error) {
console.log(error);
}
}
run();
您还应该知道,任何使用 async
关键字声明的函数也是 return 您可以等待的 Promise。
A)
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(function(res) { return res.json() })
.then(function(result) {
const items= result.items;
console.log(items);
})
.catch(function(error) {
console.log(error);
})
B)
async function getItems() {
let results;
try {
const response = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
results = await response.json()
} catch (e) {
return new Error('error......')
}
return results.items
}
const items = await getItems()
console.log(items)
我正在学习 Web 开发代码,目前正在使用 JavaScript 和 Node.js - 我需要 (A.) 在不使用任何箭头函数的情况下重写代码,并且 (B.) 使用 async/await 函数重写代码。
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(res => res.json())
.then((result) => {
items= result.items;
console.log(items);
}),
(error) => {
console.log(error);
}
我们将不胜感激任何帮助,我试图寻求帮助,但我无法理解。
你是说像这样?请让我知道这是否是您想要的以及您是否需要更多信息
async function getBooks() {
try {
const fetchResponse = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699");
const result = fetchResponse.json();
const books = result.items;
console.log(books);
} catch(error) {
console.log(error);
}
}
// await getBooks();
首先,要阅读箭头函数,您必须了解箭头函数中有两种 return 值的方法:
const func = x => x * x; // concise body syntax, implied "return"
const func = (x, y) => { return x + y; }; // with block body, explicit "return" needed
现在,下面将通过以下步骤将使用 promise 链的代码转换为使用 async/await
的代码。通过完成任务 B(将 promise 链替换为 async/await
),您将完成任务 A(没有箭头函数的代码)
如果一个方法 return 是 Promise
,像 fetch
和 Body.json()
一样,你可以等待它的结果:
const res = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699");
const result = await res.json();
items = result.items;
console.log(items);
要在不链接 .catch
的情况下处理错误,请使用 try/catch
块包装代码:
try {
const res = await fetch(
"https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699"
);
const result = await res.json();
items = result.items;
console.log(items);
} catch (error) {
console.log(error);
}
最后,await
关键字只能在异步函数 docs 中使用,这就是为什么你必须将它包装到用 async
:
async function run() {
try {
const res = await fetch(
"https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699"
);
const result = await res.json();
items = result.items;
console.log(items);
} catch (error) {
console.log(error);
}
}
run();
您还应该知道,任何使用 async
关键字声明的函数也是 return 您可以等待的 Promise。
A)
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(function(res) { return res.json() })
.then(function(result) {
const items= result.items;
console.log(items);
})
.catch(function(error) {
console.log(error);
})
B)
async function getItems() {
let results;
try {
const response = await fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
results = await response.json()
} catch (e) {
return new Error('error......')
}
return results.items
}
const items = await getItems()
console.log(items)