【摘抄】async自动执行

本文介绍如何使用Node.js的fs模块进行异步文件读取,并通过Promise和async/await语法糖简化异步操作流程。文章还探讨了如何使用Promise结合setTimeout实现延时读取文件的功能。
摘要由CSDN通过智能技术生成
var fs = require('fs');

var readFile = function(fileName) {
    return new Promise(function(resolve, reject) {
        fs.readFile(fileName, function(error, data) {
            resolve(data);
        });
    });
};

var asyncReadFile = async function() {
    var f1 = await readFile('.../input.txt');
    var f2 = await readFile('.../output.txt');
    console.log(f1.toString());
    console.log(f2.toString());
};
asyncReadFile();
//下面等效 async执行通过generator
// var gen = function*() {
//     var f1 = yield readFile('.../input.txt');
//     var f2 = yield readFile('.../output.txt');
//     console.log(f1.toString());
//     console.log(f2.toString());
// };

// function run(gen) {
//     var g = gen();

//     function next(data) {
//         var result = g.next(data);
//         if (result.done) return result.value;
//         result.value.then(function(data) {
//             next(data);
//         });
//     }

//     next();
// }

// run(gen);

在这里插入图片描述
还可以实现延时的promise,嵌套一个return new Promise里面加setTimeout但是函数要记得 直接包含的await一定要是async函数

var asyncReadFile = async function() {
    return new Promise((resolve, reject) => {
        setTimeout(async() => {
            var f1 = await readFile('.../input.txt');
            var f2 = await readFile('.../output.txt');
            console.log(f1.toString());
            console.log(f2.toString());
            resolve("v")
        }, 1000);

    })
};
asyncReadFile().then(val => console.log(val));

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值