• 令人清爽的异步函数async、await


    1.什么是async、await?

    async用于声明一个函数是异步的。而await从字面意思上是“等待”的意思,就是用于等待异步完成。并且await只能在async函数中使用;
    通常async、await都是跟随Promise一起使用的。为什么这么说呢?因为async返回的都是一个Promise对象同时async适用于任何类型的函数上。这样await得到的就是一个Promise对象(如果不是Promise对象的话那async返回的是什么 就是什么);
    async function testSync() {
    const response = await new Promise(resolve => {
    setTimeout(() => {
    resolve("async await test...");
    }, 1000);
    });
    console.log(response);
    }
    testSync();

    2.async、await串行并行处理

    串行:等待前面一个await执行后接着执行下一个await,以此类推
    async function asyncAwaitFn(str) {
    return await new Promise((resolve, reject) => {
    setTimeout(() => {
    resolve(str)
    }, 1000);
    })
    }
    const serialFn = async () => { //串行执行
    console.time('serialFn')
    console.log(await asyncAwaitFn('string 1'));
    console.log(await asyncAwaitFn('string 2'));
    console.timeEnd('serialFn')
    }
    serialFn();
    并行:将多个promise直接发起请求(先执行async所在函数),然后再进行await操作。
    async function asyncAwaitFn(str) {
    return await new Promise((resolve, reject) => {
    setTimeout(() => {
    resolve(str)
    }, 1000);
    })
    }
    const parallel = async () => { //并行执行
    console.time('parallel')
    const parallelOne = asyncAwaitFn('string 1');
    const parallelTwo = asyncAwaitFn('string 2')
    //直接打印
    console.log(await parallelOne)
    console.log(await parallelTwo)
    console.timeEnd('parallel')
    }
    parallel()

    async、await错误处理使用try catch

    async function catchErr() {
    try {
    const errRes = await new Promise((resolve, reject) => {
    setTimeout(() => {
    reject("http error...");
    }, 1000);
    );
    //平常我们也可以在await请求成功后通过判断当前status是不是200来判断请求是否成功
    // console.log(errRes.status, errRes.statusText);
    } catch(err) {
    console.log(err);
    }
    }
    catchErr(); //

  • 相关阅读:
    python课堂练习
    Python爬虫学习笔记(九)——Selenium的使用
    Python爬虫学习笔记(八)——智高考数据爬取
    Python爬虫学习笔记(七)——Ajax
    Python爬虫学习笔记(六)——BeautifulSoup和pyquery的使用
    Python爬虫学习笔记(五)——XPath的使用
    Python爬虫学习笔记(四)——猫眼电影Top100
    Python爬虫学习笔记(三)——正则表达式
    Python爬虫学习笔记(二)——requests库的使用
    Python爬虫学习笔记(一)——urllib库的使用
  • 原文地址:https://www.cnblogs.com/panax/p/9450534.html
Copyright © 2020-2023  润新知