Js中的Async

mdn官网
Js是单线程的,并不能想向java一样开启多个线程处理任务。
但是Js引入了执行栈任务队列的概念。
同时将要执行的任务分为了同步任务异步任务
程序执行同步任务时,会直接放入执行栈中执行,当程序执行到异步任务时,会先将异步任务放入任务队列中。直到执行栈中任务执行完后,再去执行任务队列中的任务。

除了放置异步任务的事件,"任务队列"还可以放置定时事。

setTimeout()接受两个参数,第一个是回调函数,第二个是推迟执行的毫秒数。
需要注意的是,setTimeout()只是将事件插入了"任务队列",必须等到当前代码(执行栈)执行完,主线程才会去执行它指定的回调函数。要是当前代码耗时很长,有可能要等很久,所以并没有办法保证,回调函数一定会在setTimeout()指定的时间执行。

综上所属:
setTimeout是单线程,类似异步,但不是异步 。
异步:

异步的三种实现方式:
1) 回调函数 ; 回调函数不一定是异步 , 但异步一定有回调函数
2) 事件
3) promise 承诺对象

  • await 操作符用于等待一个Promise 对象。它只能在异步函数 async function 中使用。

  • Promise 对象 用于表示一个异步操作的最终完成 (或失败)及其结果值。

  • await 表达式 返回 Promise 对象的处理结果。如果等待的不是 Promise 对象,则返回该值本身

  • await 表达式 会暂停当前 async function 的执行,等待 Promise 处理完成。

  • new Promise()中定义的异步任务顺利完成且返回结果值时,会调用 resolve 函数;而当异步任务失败且返回失败原因(通常是一个错误对象)时,会调用reject 函数。

  • async/await 使用了 协程(Generator) 和 微任务(Promise) 两种技术来实现。

async/await是JavaScript处理异步编程的一种方法。它是Generator函数的语法糖,能够更方便地编写和管理异步代码。通过使用async关键字来声明一个函数是异步的,并使用await关键字来等待一个异步操作完成,可以使异步代码的执行像同步代码一样顺序进行,避免了回调地狱的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [javascriptasync/await详解](https://blog.csdn.net/abxxcd/article/details/108226045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JavaScript async / await详解](https://blog.csdn.net/Niall_Tonshall/article/details/122669264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [async/await详解](https://blog.csdn.net/qq_38951259/article/details/127973287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值