zoukankan      html  css  js  c++  java
  • generator promise async 读取文件

     1 const fs = require('fs')
     2 
     3 const readFile = (path, options) => {
     4     return new Promise((resolve, reject) => {
     5         fs.readFile(path, options, (err, data) => {
     6             if (err) throw err
     7             resolve(data)
     8         })
     9     })
    10 }
    11 
    12 readFile('data/a.txt', 'utf-8').then(res => {
    13     console.log(res) 
    14     return readFile('data/a.1.txt', 'utf-8')
    15 }).then(res => {
    16     console.log(res) 
    17     return readFile('data/a.2.txt', 'utf-8')
    18 }).then(res => {
    19     console.log(res) 
    20 })
    21 
    22 function * gen (){
    23     yield readFile('data/a.txt', 'utf-8')
    24     yield readFile('data/a.1.txt', 'utf-8')
    25     yield readFile('data/a.2.txt', 'utf-8')
    26 }
    27 
    28 let g1 = gen()
    29 
    30 g1.next().value.then(res => {
    31     console.log(res)
    32     return g1.next().value
    33 }).then(res => {
    34     console.log(res)
    35     return g1.next().value
    36 }).then(res => {
    37     console.log(res)
    38 })
    39 
    40 async function async1() {
    41     try{
    42         let f1 = await readFile('data/a.txt', 'utf-8')
    43         let f2 = await readFile('data/a.1.txt', 'utf-8')
    44         let f3 = await readFile('data/a.2.txt', 'utf-8')
    45         console.log(f1)
    46         console.log(f2)
    47         console.log(f3)   
    48     }catch(e) {
    49         console.log(e)
    50     }
    51 }
    52 async1()

    data目录下的a.txt  随便定义内容

  • 相关阅读:
    一些无意间YY的脑瘫题
    回滚莫队
    数论
    专题整理
    模拟赛x+1
    HISKrrr的板子库
    java多线程学习笔记(四)
    java多线程学习笔记(三)
    java多线程学习笔记(二)
    Java多线程学习笔记(一)
  • 原文地址:https://www.cnblogs.com/gaoxuerong123/p/9498277.html
Copyright © 2011-2022 走看看