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 //代码 }挑战
中等给你一个函数 foo,它接收一个整数 n 并返回一个 promise。
编写一个函数 sum,它接收两个 promise 作为输入,并返回它们解析结果的和。
这个函数应标记为 async!
亲手试试
const foo = async (x) => {
return x
}
// 在下方编写代码现代 JavaScript(ES6+)中的难点中的所有课
自己练习: JavaScript 在线编译器