zoukankan      html  css  js  c++  java
  • 10-Node.js学习笔记-异步函数

    异步函数

    异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,是代码变得清晰明了

    ``` const fn = async()=>{} async function fn(){} ``` ``` //1.在普通函数定义的前面加上async关键字 普通函数就变成了异步函数 //2.异步函数默认返回值是promise对象 //3.在异步函数内部使用throw关键字进行错误的抛出 async function fn(){ throw '发生了一些错误' return 123; } fn().then(function(data){ console.log(data) }).catch(function(err){ console.log(err) }) ``` ``` //then(参数1,参数2) //参数1:用于获取promise对象成功的回调函数 //参数2:用于获取promise对象失败的回调函数 async function fn(a){ if(a !=10){ throw "变量值错误,不等于10"; }else{ return "变量值等于10"; } } fn(11).then(function(data){ console.log(data); },function(info){ console.log(info); }) ```

    async关键字

    1.普通函数定义前加async关键字 普通函数变成异步函数

    2.异步函数默认返回promise对象

    3.在异步函数内部使用return关键字进行结果返回,结果会被包裹的promise对象中,return关键字代替了resolve方法

    4.在异步函数内部使用throw关键字抛出程序异常

    5.调用异步函数再链式调用then方法获取异步函数执行结果

    6.调用异步函数再链式调用catch方法获取异步函数执行的错误信息

    await关键字

    1.await关键字只能出现在异步函数中

    2.await promise await后面只能写promise对象 写其他类型的API是不可以的

    3.await关键字可以暂停异步函数向下执行 直到promise返回结果

    ``` async function p1(){ return 'p1' } async function p2(){ return 'p2' } async function p3(){ return 'p3' } async function p4(){ return 'p4' } async function p5(){ return 'p5' } async function fun(){ var a = await p1(); var b = await p2(); var c = await p3(); var d = await p4(); var e = await p5(); console.log(a); console.log(b); console.log(c); console.log(d); console.log(e); } fun() ```

    异步函数的应用

    ``` const fs = require('fs'); //改造现有异步函数api 让其返回promise对象 从而支持异步函数语法 const promisify = require('util').promisify; const readFile = promisify(fs.readFile); async function run(){ let r1 = await readFile('./1.txt','utf8') let r2 = await readFile('./2.txt','utf8') let r3 = await readFile('./3.txt','utf8') console.log(r1) console.log(r2) console.log(r3) } run(); ```
  • 相关阅读:
    Android接入WebView
    james邮件服务器部署
    防止网络攻击的方式
    vue开发遇到的问题及解决方式
    jekins和docker的作用
    设计模式(2)[JS版]---JavaScript如何实现单例模式?
    黑客帝国中代码雨如何实现?用 canvas 轻松实现代码雨炫酷效果!
    什么是JavaScript 的闭包???
    纯CSS实现iOS风格打开关闭选择框
    纯CSS实现自定义单选框和复选框
  • 原文地址:https://www.cnblogs.com/foreverLuckyStar/p/12073493.html
Copyright © 2011-2022 走看看