前端关于异步、promise、async和await

js是一个单线程的语言,一次只能完成一个任务
同步模式下,如果一个任务执行时间比较长或者有错误 那么后面的程序都会处于等待的状态
异步模式的出现使得每一个任务可以有自己的回调,当任务执行完毕,不是执行后面的任务 而是执行后面的回调 后面的任务也不是等前面的任务执行完毕就执行,而是等前面的回调执行完毕后在执行本任务 以及本任务的回调任务

异步的解决方案

promise((resolve,reject)=>{}) 这个方法执行后有三种结果 成功时.then() 失败时.catch() 无论成功失败.finally()
用法

new Promise(
    /* executor */
    function(resolve, reject) {
        if (/* success */) {
            // ...执行代码
            resolve();
        } else { /* fail */
            // ...执行代码
            reject();
        }
    }
);

.then((value)=>{ //这个value对应的是"成功的值" })是 promise成功时或者执行resolve(()=>{return “成功的值”})
.catch((value)=>{//这个value对应的是"失败的值"})是promise失败时或者执行reject(()=>{return “失败的值”})

async

async 用来声明一个异步的函数 这个函数对应promise的resolve值
比如

 async function foo(){
	return 11111
}
foo.then((value) =>{ console.log(value)//11111 }) //此时foo()默认返回的111111就是resolve(111111)的值
await

await 等待执行 必须跟在async声明的异步函数中
用法

async function aa(){
        await '任务1'
        await '任务2'
}

任务1执行完 才会执行任务2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Promiseasyncawait都是JavaScript中处理异步操作的方法。 Promise是一种用于处理异步操作的对象,它可以表示一个异步操作的最终完成或失败,并返回相应的结果。Promise提供了一系列的方法,如resolve()、reject()、then()、catch()、all()和race()等等,用于处理异步操作的状态和结果。 async/await是JavaScript中处理异步操作的一种语法糖,它可以让异步代码看起来更像同步代码,更易于理解和编写。async用于声明一个函数是异步的,而await用于等待一个异步方法执行完成。使用async/await可以在函数内部直接使用await关键字来等待一个Promise对象的结果,而不需要使用then()和catch()方法来处理回调。 实际上,Promiseasync/await在处理异步操作上的结果是一样的,只是async/await更加直观和易于理解。 如果你想更深入地了解异步解决方案,可以参考「硬核JS」深入了解异步解决方案的文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Promiseasync/await的理解](https://blog.csdn.net/qq_44738313/article/details/125659225)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值