我正在学习Web开发的代码,目前正在使用JavaScript和Node.js- 我需要 (A.)不使用任何箭头功能就重写代码,并且 (B.)使用异步/等待功能重写代码。
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);
}
任何帮助都将不胜感激,我试图寻找帮助,但我却无能为力。
答案 0 :(得分:0)
您的意思是这样吗?请让我知道这是否是您想要的以及是否需要更多信息
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();
答案 1 :(得分:0)
首先,要阅读箭头函数,您必须了解有两种方法可以在箭头函数中返回值:
const func = x => x * x; // concise body syntax, implied "return"
const func = (x, y) => { return x + y; }; // with block body, explicit "return" needed
现在,以下内容将逐步完成将使用承诺链的代码转换为使用async/await
的代码的步骤。通过完成任务B(用async/await
替换承诺链),您将完成任务A(不带箭头功能的代码)
如果某个方法返回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
关键字声明的任何函数也会返回一个Promise,您可以等待。
答案 2 :(得分:0)
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)