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#使用多线程的几种方式示例详解
    C#中数组、ArrayList和List三者的区别
    c# Thread类
    IEnumerable和IEnumerator 详解
    C#执行CMD命令并接收返回结果的实现方法
    C# Process.Start()方法详解
    C#Json转Xml格式数据的方法
    sql存储过程
    SQL存储过程基础
  • 原文地址:https://www.cnblogs.com/huyifei/p/9922419.html
Copyright © 2011-2022 走看看