打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
async function delayedCode() {} 怎么理解
表白:黑白圣堂血天使,天剑鬼刀阿修罗。 
讲解对象:
/async function delayedCode() {} 怎么理解
作者:融水公子 rsgz
===

async function delayedCode() {}
async function delayedCode() {} 是一个声明了异步操作的函数。在JavaScript中,使用关键字 async 来定义一个异步函数。异步函数可以包含异步操作,并通过使用 await 关键字来等待异步操作完成。
function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function delayedCode() {
  ye_num=ye_num+1  // 页码加1
  await delay(1000);
  document.querySelectorAll('input#selectAll')[0].click();  // 全选
  await delay(1000);
  document.querySelectorAll('a[sxz="batchCaculatedShipping"]')[0].click();  // 批量编辑
  await delay(1000);
  document.querySelectorAll('button.button.btn-determine[onclick="batchCaculatedShipping(this);"]')[0].click()  // 确定
  await delay(1000);
  checkAndClick_wancheng();  // 状态出现已完成 就点击下面的 关闭 按钮
  await delay(1000);
  document.querySelectorAll('div.paging-box.tab-nav.page-up')[0].querySelectorAll('a[title="下一页"]')[0].click()   // 如果出现关键字 ye_num.toString()+'/'  就开始新一轮的 delayedCode()
  await delay(1000);
  checkAndClick_a_dijiye(ye_num);
}
delayedCode();
 在这个特定的代码中,delayedCode 函数是一个异步函数,它使用了异步操作来延迟执行一系列的代码片段。通过使用 await delay(1000),它等待一秒钟(1000毫秒)以确保前一个操作完成后再执行下一个操作。

 异步函数通过返回一个 Promise 对象来控制其执行状态。如果函数中没有显式地返回任何内容,那么实际上它会隐式地返回一个已解析(resolved)的 Promise 对象。

 在代码的最后,通过调用 delayedCode() 函数来触发该异步函数的执行。由于函数中包含了异步操作和 await 关键字,整个执行过程会被暂停并按顺序逐步执行异步操作,直到所有的异步操作都完成为止。


那么还有一个问题:为什么将Promise+async+await这三个结合在一起使用呢?

1 异步操作的简化:Promise+async+await 的组合可以大大简化异步操作的编写和处理。传统的回调函数方式可能导致嵌套过深的回调函数(回调地狱),而使用 Promise 和 async/await 可以将异步操作的逻辑表达得更加清晰和易于理解。


2 顺序控制:使用 await 关键字可以在异步操作中实现顺序控制,即等待一个异步操作完成后再执行下一个操作。这样可以避免回调函数中的层层嵌套,使代码逻辑更加线性和可读性更高。


3 错误处理:通过结合 Promise 的 reject 和 catch、async 函数的 try-catch 机制,可以更方便地进行错误处理。使用 try-catch 可以捕获异步操作中的异常,并使用 catch 块来处理错误情况,提供了更强大且易于理解的错误处理机制。


4 可链式调用:Promise 对象本身具有可链式调用的特性,可以通过 then 方法将多个异步操作串联起来。而 async/await 结合 Promise,则可以在写法上更加简洁和直观地表示异步操作的顺序关系。

综上所述,将 Promise、async 和 await 这三个组合在一起使用,能够简化异步操作的编写、顺序控制、错误处理,并提高代码的可读性和可维护性。

=== 
公众号:不浪仙人
谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
';
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
async/await 是如何让代码更加简洁的?
5分种让你了解javascript异步编程的前世今生,从onclick到await/async
js 宏观任务和微观任务> promise的代码为什么比setTimeout先执行
vue使用promise、async、await的一点理解
异步解决方案----Promise与Await
ES6新特性(5)之Promise/async
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服