ES6(JavaScript)中,异步抓取数据的三种实现方法


const  fs = require("fs");

//文件读取返回一个promi对象!
function readFile(filename) {
    return  new Promise((resolve,reject) => {

                fs.readFile(filename,(err,data) => {
            
                    if (err) {
                        reject(err);
                    }else {
            
                        resolve(data.toString());
                    }
                });
    })

}


//第三种async方法实现异步读取文件!!!
async function asyncReadfile() {
    try {
        let data1 = await readFile("./test001.txt");
        console.log(data1);
        let data2 = await readFile("./test002.txt");
        console.log(data2);
    } catch (data2) {
       console.log(err);
    }
   
}
asyncReadfile();


// //第二种Generator方法实现异步读取文件!!!
// //Generator生成器相当于一个数组,可以for...of迭代!
function* myGenerator() {
    yield readFile("./test001.txt");
    yield readFile("./test002.txt");

}
for(promiseData of myGenerator()){
    promiseData.then((value) => {
        console.log(value);
    }).catch((err) => {
        console.log(err);
    })
}




//第一种promise方法实现异步读取文件!!!
readFile("./test001.txt").then((value) => {
    console.log(value);
    return readFile("./test002.txt")
}).then((value) => {
    console.log(value);
}).catch((err) =>{

    console.log(err);
});

/**
 * test001.txt文件!! 
 * test002.txt文件!!
 */



 


版权声明:本文为weixin_43343144原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。