本网站可以出售:只需60000元直接拥有。QQ:939804642
您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

JS中的async与await怎么使用

51自学网 2022-02-21 13:34:56
  javascript

一、async

async创建一个异步函数来定义一个代码块,在其中运行异步代码;

怎样变成异步函数呢?以 async 这个关键字开始,它可以被放置在一个函数前面

async function f() {  return 1;} f().then(alert); // 1 //上下结果一样 async function f() {  return Promise.resolve(1);} f().then(alert); // 1 //也可以用箭头函数let hello = async () => { return "1" };hello().then((value) => console.log(value))//返回值也可以简化成这样hello().then(console.log)

异步函数的特征之一:保证函数的返回值为 promise

async 关键字加到函数申明中,可以告诉它们返回的是 promise,而不是直接返回值。此外,它避免了同步函数为支持使用 await 带来的任何潜在开销。

二、await:

await 只在异步函数里面才起作用。它可以放在任何异步的,关键字 await JavaScript 引擎等待直到 promise 完成并返回结果。在等待promise的同时,其他正在等待执行的代码就有机会执行了。

您可以在调用任何返回Promise的函数时使用 await,包括Web API函数。

async function f() {  let promise = new Promise((resolve, reject) => {    setTimeout(() => resolve("咚!"), 1000)  });   let result = await promise; // 等待执行,直到 promise resolve 执行完   alert(result); // "咚!"} f();//拿到 result 作为结果继续往下执行。所以上面这段代码在1秒后显示 “咚!”。

注意:await 实际上会暂停函数的执行,直到 promise 状态变为 完成,然后以 promise 的结果继续执行。这个行为不会耗费任何 CPU 资源,因为 JavaScript 引擎可以同时处理其他任务:执行其他脚本,处理事件等。

三、综合应用

有了async/await就去除了到处都是 .then() 代码块,因为await会等待了。

async function A() {  let response = await fetch('c.jpg');  let myBlob = await response.blob();   let objectURL = URL.createObjectURL(myBlob);  let image = document.createElement('img');  image.src = objectURL;  document.body.appendChild(image);} A().catch(e => {  console.log('问题: ' + e.message);});

用更少的.then()块来封装代码,同时它看起来很像同步代码,所以它非常直观。这样用的很爽!

到此这篇关于JS的async/await怎么使用的文章就介绍到这了,更多相关JS的async/await 用法内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


下载地址:
JavaScript错误处理try..catch...finally+涵盖throw+TypeError+RangeError
React 的调和算法Diffing 算法策略详解
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1