zoukankan      html  css  js  c++  java
  • 使用async读取异步数据

    使用传统方式读取异步数据

    const fs = require('fs')
    
    fs.readFile('readme.txt', function (err, data) {
      console.log(data.toString());
    })
    
    // hello async
    

    使用promise对象读取异步数据

    const fs = require('fs')
    
    function readFile(path) {
      return new Promise((resolve, reject) => {
        fs.readFile(path, function (err, data) {
          if (err) {
            reject(err);
            return;
          }
          resolve(data);
        })
      })
    }
    
    readFile('readme.txt').then((data) => {
      console.log(data.toString()); // hello async
    }).catch(e => {
      console.log(e);
    })
    

    使用async/await读取异步数据

    const fs = require('fs')
    
    function readFile(path) {
      return new Promise((resolve, reject) => {
        fs.readFile(path, function (err, data) {
          if (err) {
            reject(err);
            return;
          }
          resolve(data);
        })
      })
    }
    
    async function foo1(){
      const data = await readFile('readme.txt');
      console.log('--------------------------------');
      console.log(data.toString());
    }
    
    foo1() // hello async
    

    使用node自带的promisify读取异步数据

    const fs = require('fs')
    const promisify = require('util').promisify;
    const rf = promisify(fs.readFile)
    
    // 直接读取
    rf('readme.txt').then((data) => {
      console.log(data.toString());  // hello async
    }).catch(e => {
      console.log(e);
    })
    
    // 使用async读取
    async function demo() {
      const data = await rf('readme.txt');
      console.log(data.toString());
    }
    
    demo();  // hello async
    
  • 相关阅读:
    C++ 11 lambda
    Win环境下的文件读写
    基于 Jenkins+Docker+Git 的CI流程初探
    python切片操作
    k8s 集群中的etcd故障解决
    Git 版本控制管理(二)
    Git 版本控制管理(一)
    Harbor 企业级镜像仓库搭建
    docker 数据管理
    docker 网络的几种模式
  • 原文地址:https://www.cnblogs.com/huyifei/p/9922419.html
Copyright © 2011-2022 走看看