资讯专栏INFORMATION COLUMN

async函数(asynchronous 异步的)

BlackFlagBin / 1329人阅读

摘要:函数异步的同步依次打印异步文件读取操作先打印,隔三秒后打印函数返回的是状态的对象打印。函数里面的返回值传递给方法打印函数用来处理异步只能出现在异步函数里面结束先打印,三秒后打印两次,打印完然后隔两秒打印两次和结束

async函数(asynchronous 异步的)

同步:

console.log(1);
console.log(2);
console.log(3);
console.log(4);
//依次打印1 2 3 4;

异步 ajax 文件读取io操作:

console.log(1);
    console.log(2);
    setTimeout(function(){
        console.log(3000);
    },3000);
    console.log(3);
    console.log(4);
    //先打印1 2 3 4,隔三秒后打印3000;

async函数返回的是resolve状态的Promise对象:

async function fn(){
        return "abc";
    }
    let result=fn();
    console.log(result);//打印:Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: "abc"}。

Promise 对象:

let p = new Promise(function(resolve,reject){
        resolve("abc");
    });
            
    p.then(function(data){
        console.log(data);//打印abc。
    });

async函数里面的返回值传递给then方法:

async function fn(){
        return "123";
    }
    let p1 = fn();
    p1.then(function(data){
        console.log(data);//打印123.
    });

async函数用来处理异步:

function one(){
        return new Promise(function(resolve,reject){
            setTimeout(function(){
            console.log("one_3000");
            resolve("one_3000");
            },3000);
        })
    }
            
    function two(){
        return new Promise(function(resolve,reject){
            setTimeout(function(){
            console.log("two_2000");
            resolve("two_2000");
            },2000);
        })
    }
            
//await只能出现在异步函数里面, 
    async function shunxu(){
        console.log("start");
        let r1 = await one();
        console.log(r1);
        let r2 = await two();
        console.log(r2);
        return "end";
    }
        let p3 = shunxu();
        p3.then(r=>{
            console.log("结束");
        });
            
    //先打印start,三秒后打印两次one_3000,打印完one_3000然后隔两秒打印两次two_2000和结束;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84127.html

相关文章

  • tornado6与python3.7 异步新姿势

    摘要:这是我重新复习的原因放弃了之前自己实现的全面拥抱的这个改动是非常大的而且阅读的源码可以发现其中大部分函数都支持了类型检验和返回值提示值得阅读 废话不多说,直接上代码 __auth__ = aleimu __doc__ = 学习tornado6.0+ 版本与python3.7+ import time import asyncio import tornado.gen import t...

    maxmin 评论0 收藏0
  • 翻译:Taming the asynchronous beast with ES7

    摘要:让我们使用它从数组中返回一个值数组在中,我们可以这样做,这是一种更简单的方法最重要的部分是创建数组,该数组立即调用所有的我们在主函数中等待这些。所以在我们真正等待完成之前,主函数就退出了。 原文:https://pouchdb.com/2015/03/0... PouchDB最棘手的方面之一是它的API是异步的。在Stack Overflow、Github和IRC上,我看到了不少困惑的...

    Eastboat 评论0 收藏0
  • Spring MVC异步处理简介

    摘要:异步处理简介地址相关系列文章异步处理详解分析本文讲到的所有特性皆是基于的,不是基于的。用于异步返回结果,使用自己的,使用负责处理它。配置执行异步操作需要用到,这个可以在用方法来提供相关文档。 Spring MVC异步处理简介 Github地址 相关系列文章: Servlet 3.0 异步处理详解 Servlet 3.1 Async IO分析 本文讲到的所有特性皆是基于Servlet...

    Sike 评论0 收藏0
  • Promise 详解

    摘要:是异步编程的一种解决方案,比传统的解决方案回调函数和事件更合理和更强大。规定,对象是一个构造函数,用来生成实例。在同步调用下,回调函数一般是最后执行的。 1、Promise 的含义 初识Promise,要从多方面去理解,可以直接百度Promise,只看别人博客的前面的含义介绍,先不深入看别人的博客,基本可以了解到: promise原意:诺言; 许诺; 承诺;预示。 Promise...

    derek_334892 评论0 收藏0
  • 和少妇白洁一起学JavaScript之Async/Await

    摘要:匿名函数是我们喜欢的一个重要原因,也是,它们分别消除了很多代码细节上需要命名变量名或函数名的需要。这个匿名函数内,有更多的操作,根据的结果针对目录和文件做了不同处理,而且有递归。 能和微博上的 @响马 (fibjs作者)掰扯这个问题是我的荣幸。 事情缘起于知乎上的一个热贴,诸神都发表了意见: https://www.zhihu.com/questio... 这一篇不是要说明白什么是as...

    Bryan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<