JS中的Promise和async await

JS中的Promise和async await

单线程的js为什么会出现异步操作

JS的执行环境是单线程的,但是这样的单线程会导致如果程序执行过程中,某一步需要耗时很长就会导致整个页面卡住,为了避免这种问题,JavaScript语言将任务的执行模式分为两种:同步(Synchronous)和异步(Asynchronous)

同步:就是一行一行从上往下执行
异步:前一个任务执行完成后执行回调函数,而下一个任务则是再前一个任务执行完成后就开始了

JavaScript中异步编程的方法有:

  • 回调函数
  • 事件监听
  • 发布/订阅
  • promise
  • generator(ES6)
  • async/await (ES7)
Promise的用法
// 创建一个Promise对象
let a = new Promise( function(resolve(), reject()) {
    // 正常返回
    resolve(data)
    // 异常返回
    reject(e)
} /* executor */  );

// 通过then获取resolve()方法中的参数,catch接受reject中的参数
a.then(data => {console.log(data)}).catch(e => {
    console.log(e)
})
async await的用法

await 关键字只能在 async修饰的方法中使用

/**
 * readFile是一个触发异步的方法,先要在read文件之后获取到文件内容
 */
async function() {
    let str = await readFile("./a.txt")
    if(str){
        let fr2 = await readFile(str)
        if(fr2){
            console.log(fr2)
        }
    }
}

参考:

  1. JavaScript中的异步操作
  2. 浅析js中的Promise和async/await
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值