es6 异步 之async await 学习总结

简介: es6 异步 之async await 学习总结
 async 和 await 是 ES2016/ es7 新增的两个关键字, 它们借鉴了 ES2015 中生成器在实际开发中的应用。
        目的是为了简化Promise api 的使用, 并非替代 Promise
        async:目的是为了简化在函数的返回值中对Promise的创建
        例如:
         async function test() {
            console.log(1);
            return 2; // resolve  
            //  throw reject
        }
        // 等效于
        function test() {
            return new Promise((resolve, reject) => {
                console.log(1);
                resolve(2);
            })
        }
        await: 关键字必须出现在async函数中
        await 等待的是thenable里面成功的状态
          async function test() {
            const result = await 1;
            console.log(result);
        }
        // 等效于
        function test() {
            return new Promise((resolve, reject) => {
                Promise.resolve(1).then(data => {
                    const result = data;
                    console.log(result)
                    resolve();
                })
            })
        }
        上面的那种方法处理的是promise的正常状态,如何处理错误状态呢?
          function getRandom() {
            if (Math.getRandom < 0.5) {
                return 1;
            } else {
                throw 2;
            }
        }
        async function test() {
            try {
                const result = await getRandom();
                console.log("正常状态", result);
            } catch{
                console.log("错误状态",err)
            }
        }
        /**
         * @description:  使用promise 改造 计时器
         * @param : 
         * @return: 
         */
        function delay(duration) {
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve();
                }, duration);
            })
        }
相关文章
|
8月前
|
前端开发
async和await 优雅处理异步
async和await 优雅处理异步
|
8月前
|
前端开发
Await和Async是什么?跟Promise有什么区别 使用它有什么好处
Await和Async是什么?跟Promise有什么区别 使用它有什么好处
|
2月前
|
前端开发
如何使用async/await解决Promise的缺点?
总的来说,`async/await` 是对 Promise 的一种很好的补充和扩展,它为我们提供了更高效、更易读、更易维护的异步编程方式。通过合理地运用 `async/await`,我们可以更好地解决 Promise 的一些缺点,提升异步代码的质量和开发效率。
36 5
|
2月前
|
前端开发 JavaScript
async/await和Promise在性能上有什么区别?
性能优化是一个综合性的工作,除了考虑异步模式的选择外,还需要关注代码的优化、资源的合理利用等方面。
41 4
|
5月前
|
C#
C# async await 异步执行方法
C# async await 异步执行方法
60 0
|
7月前
|
JSON 前端开发 JavaScript
ES6引入Promise和async/await解决异步问题
【6月更文挑战第12天】ES6引入Promise和async/await解决异步问题。Promise处理异步操作,有pending、fulfilled、rejected三种状态,支持链式调用和并行处理。async/await是基于Promise的语法糖,使异步代码更同步化,提高可读性。两者都是处理回调地狱的有效工具,开发者应根据需求选择合适的方式。
58 3
|
8月前
|
监控 前端开发 JavaScript
等一下!深入async/await的异步世界
等一下!深入async/await的异步世界
112 1
|
8月前
|
API
es6读书笔记(六) async await
es6读书笔记(六) async await
|
前端开发
ES6学习(十)—async 函数
ES6学习(十)—async 函数
|
前端开发 JavaScript
async、await 实现原理
async、await 实现原理
86 1

热门文章

最新文章

下一篇
开通oss服务