Menu
CoddyTech

async 与 await

Coddy 现代 JavaScript(ES6+)中的难点 课程的第 9 课,共 9 课。

如果你已经完成了上一课,你可能会觉得 Promise 很难理解,甚至很难记住它的语法!

别担心!ES6 可以帮你解决这个问题。 

<i>async</i> 和 <i>await</i> 可以让 Promise 更容易编写

考虑一个执行异步(耗时)任务的函数。 

我们希望这个函数返回 Promise,并等待 Promise 的结果。

如果在任何 JavaScript 函数前写上 async,它总是 返回一个 Promise。

await 会让函数等待一个 Promise,并暂停函数的执行,直到 Promise 得到解决。

考虑一个从服务器获取数据的示例,这可能需要几秒钟。

 async function fetchData () {
 	const response = await fetch("/url"); // 等待 Promise 完成
  	const movies = await response.json(); // 等待 Promise 完成
  	return movies;
  } 
  
  fetchData.then(val => console.log(val)) // 从 API 返回的数据

await 关键字只能在 async 函数内部使用。

async-await 可以用于普通函数和箭头函数。

const someFunc = async (a) => { await //代码 }
challenge icon

挑战

中等

给你一个函数 foo,它接收一个整数 n 并返回一个 promise。

编写一个函数 sum,它接收两个 promise 作为输入,并返回它们解析结果的和。

这个函数应标记为 async!

亲手试试

const foo = async (x) => {
    return x
}

// 在下方编写代码

现代 JavaScript(ES6+)中的难点中的所有课

自己练习: JavaScript 在线编译器