使用TypeScript async / await与Node core api

时间:2016-08-26 03:21:48

标签: node.js typescript bluebird

使用TypeScript async / await与Node core api(fs,process等)的最佳方法是什么?

将核心模块转换为使用带有bluebird.promisifyAll()的Promises将是完美的,除非您丢失类型信息,我希望能够保留它。您最终得到xxxAsync方法名称,TypeScript输入系统不知道它们的存在。

是否有一个项目可以将核心API转换为返回promises并使用TypeScript定义文件.d.ts来支持它?

2 个答案:

答案 0 :(得分:2)

在NPM上查看async-file包装器。它是fs的直接替代品,它包含Promise中的所有异步函数,并提供强类型。它还提供了一些便利功能,以简化访问文本文件和删除文件和目录。

答案 1 :(得分:0)

我认为这是更好的方式:

// Example: checking file existence
let res = await new Promise((resolve, reject) => {
    fs.access(filePath, fs.constants.R_OK, async (err) => {
        if (err) {
            console.error('File does not exists or cannot be read');
            return resolve(false);
        }
        return resolve(true);
    });
});
console.log(res); // Correctly resolved (true/false)