ES8 异步编程async函数的基本使用

 {
            // let task1 = function () {
            //     return new Promise(function (resovle, reject) {
            //         setTimeout(function () {
            //             resovle("task1的返回结果")
            //         }, 1000)
            //     })
            // }

            // function fun() {
            //     task1().then(function (res) {
            //         console.log(res)
            //     })
            // }
            // fun()

            // let task1 = () => new Promise((resolve, reject) => {
            //     setTimeout(() => resolve("task1 end.返回结果"), 1000)
            // })

            // function fun() {
            //     task1().then(res => console.log(res))
            // }

            // fun()
        }


        {

            // let task1 = () => new Promise((resolve, reject) => {
            //     setTimeout(() => resolve("task1 end.返回结果"), 1000)
            // })

            // let task2 = () => new Promise((resolve, reject) => {
            //     setTimeout(() => resolve("task2 end.返回结果"), 1000)
            // })


            // //async函数是对Generator函数的改进
            // //1、函数执行,遇到await等待异步操作完成,再接着执行后面的语句
            // //内置了执行器,自动执行。不像Generator函数,需要调用next方法

            // //2、更好的语义。async 和 await,比星号和yield,语义更加清晰

            // //一句话:它就是Generator函数的语法糖
            // async function fun() {
            //     let result1 = await task1()
            //     console.log(result1)
            //     let result2 = await task2()
            //     console.log(result2)
            //     console.log("fun end")
            // }

            // fun()
        }

        {

            // let task1 = () => new Promise((resolve, reject) => {
            //     setTimeout(() => resolve("task1 end.返回结果"), 1000)
            // })

            let task1 = () => Promise.resolve("task1 end.返回结果")

            //async函数返回一个Promise对象,可以使用then添加回调函数
            //async函数内部return语句返回的值,会成为then返回回调函数的参数
            async function fun() {
                //await后面跟Promise对象,返回该Promise对象的结果
                return await task1()
                //await后面不是Promise对象,就直接返回对应的值
                //return await 100
            }

            fun().then(res => console.log(res))


        }
posted @ 2021-02-27 11:41  abcdefgab  阅读(82)  评论(0)    收藏  举报