【JavaScript源代码】JavaScript中async,await的使用和方法.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
JavaScript中async,await的使用和方法 JS中 async函数和await 关键字 function hellworld() { return "您好!美好世界!"; } console.log(hellworld()); // 您好!美好世界! async function asyHellworld() { return "您好!美好世界!"; } console.log(asyHellworld()); // Promise { '您好!美好世界!' } 普通函数 hellworld 将简单地 在JavaScript中,`async`和`await`是ES2017引入的两个关键特性,它们主要用于处理异步操作,让代码看起来更简洁、可读性更强。它们是现代JavaScript异步编程的重要工具,尤其在处理Promise链时,能够极大地提高代码的可维护性和避免回调地狱。 我们来看`async`关键字。`async`用于声明一个异步函数。当函数前面加上`async`,该函数就会返回一个Promise对象。例如,函数`asyHellworld`就是一个异步函数,调用它时不会立即返回字符串,而是返回一个Promise对象,这与普通的同步函数`hellworld`不同。 ```javascript async function asyHellworld() { return "您好!美好世界!"; } ``` 调用`asyHellworld()`会立即返回一个Promise,而不是直接返回字符串。如果想要获取到这个字符串,需要通过`.then`方法来处理Promise的结果: ```javascript asyHellworld().then(str => console.log(str)); // "您好!美好世界!" ``` 接着,我们来看`await`关键字。`await`只能在`async`函数内部使用,它用于等待Promise的解析结果。`await`后面的表达式必须是一个Promise,`await`会暂停异步函数的执行,直到Promise解析,并将Promise的结果返回。 ```javascript async function asyHellworld() { return await Promise.resolve("您好!美好世界!"); } asyHellworld().then(console.log); // "您好!美好世界!" ``` 在这个例子中,`await Promise.resolve("您好!美好世界!")`会等待Promise解析后,将结果返回,然后异步函数继续执行,最终`.then`接收并打印出这个结果。 使用`async/await`组合,我们可以编写更清晰的异步代码。例如,处理AJAX请求时,传统方式通常涉及`.then`链: ```javascript login(username, password) .then(loginResult => { console.log("登录成功!"); }); ``` 使用`async/await`,我们可以将其简化为: ```javascript const loginResult = await login(username, password); console.log(loginResult); ``` 不过,`await`只能在`async`函数中使用,所以在Vue的store中,我们需要这样写: ```javascript const actions = { async [LOGIN]({ commit }, payload) { const { username, password } = payload; const loginResult = await login(username, password); console.log(loginResult); }, }; ``` 此外,`async/await`还可以帮助我们实现类似`sleep`这样的暂停功能: ```javascript const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); ``` 这个`sleep`函数返回一个Promise,`await sleep(1000)`将会使异步函数暂停1秒。 总结起来,`async`和`await`提供了一种处理异步操作的新方式,使得代码更接近同步逻辑,提高了可读性和可维护性。在处理Promise链、AJAX请求以及需要暂停执行的场景下,它们特别有用。不过要注意,`await`只能在`async`函数内部使用,且其后面必须跟一个Promise。正确理解和运用`async/await`,可以让我们的JavaScript异步编程更加高效。
- 粉丝: 3076
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助