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  随便定义内容

猜你喜欢

转载自www.cnblogs.com/gaoxuerong123/p/9498277.html