重写为异步 + 不使用箭头函数重写

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,像 fetchBody.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)