• 目录
  • 简介
  • 收藏

    烂尾楼

    莫导喜欢听人叫他爸爸…… 要是让莫导的广大粉丝知衣冠禽兽的莫导居然有这个癖好……   你以为会发生 粉转黑、路转喷这样的事情吗?   不,他们会说我们愿意。   爸爸爹爹皇阿玛,换着花样叫都行!   床上床下叫都没关系!

    乱码

    小说: 烂尾楼 作者:衣衫似风雪 字数:1640 更新时间:2024-03-29 17:55:27

    菜鸟教程 -- 学的不仅是技术,更是梦想!

    video

    首页 笔记首页 ANDROID ES6 教程 排序算法 HADOOP ZOOKEEPER VERILOG 编程技术 程序员人生

    5.3 ES6 async 函数

    分类 ES6 教程

    async

    async 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。

    语法

    async function name([param[, param[, ... param]]]) { statements }

    name: 函数名称。

    param: 要传递给函数的参数的名称。

    statements: 函数体语句。

    返回值

    async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。

    async function helloAsync(){

    return "helloAsync";

    }

    console.log(helloAsync()) // Promise {: "helloAsync"}

    helloAsync().then(v=>{

    console.log(v); // helloAsync

    })

    async 函数中可能会有 await 表达式,async 函数执行时,如果遇到 await 就会先暂停执行 ,等到触发的异步操作完成后,恢复 async 函数的执行并返回解析值。

    await 关键字仅在 async function 中有效。如果在 async function 函数体外使用 await ,你只会得到一个语法错误。

    function testAwait(){

    return new Promise((resolve) => {

    setTimeout(function(){

    console.log("testAwait");

    resolve();

    }, 1000);

    });

    }

    async function helloAsync(){

    await testAwait();

    console.log("helloAsync");

    }

    helloAsync();

    // testAwait

    // helloAsync

    await

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

    语法

    [return_value] = await expression;

    expression: 一个 Promise 对象或者任何要等待的值。

    返回值

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

    如果一个 Promise 被传递给一个 await 操作符,await 将等待 Promise 正常处理完成并返回其处理结果。

    function testAwait (x) {

    return new Promise(resolve => {

    setTimeout(() => {

    resolve(x);

    }, 2000);

    });

    }

    async function helloAsync() {

    var x = await testAwait ("hello world");

    console.log(x);

    }

    helloAsync ();

    // hello world

    正常情况下,await 命令后面是一个 Promise 对象,它也可以跟其他值,如字符串,布尔值,数值以及普通函数。

    function testAwait(){

    console.log("testAwait");

    }

    async function helloAsync(){

    await testAwait();

    console.log("helloAsync");

    }

    helloAsync();

    // testAwait

    // helloAsync

    await针对所跟不同表达式的处理方式:

    Promise 对象:await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。

    非 Promise 对象:直接返回对应的值。

    ← 5.2 ES6 Generator 函数

    2 篇笔记 写笔记

    漫天绯羽

    176***3519@qq.com

    119

    async function a(){

    console.log("1")

    console.log("2")

    }

    a()

    console.log("3")

    //打印: 1 2 3

    使用 await 测试:

    Email
    lovenovelapp@gmail.com
    Facebook主页
    @Lovenovel
    Twitter
    @lovenovelapp