首页 > 解决方案 > fs.promise.rm 在创建文件之前无法创建承诺

问题描述

我尝试为同一个文件创建一个fs.promise.writeFile操作和fs.promise.rm操作,并在稍后阶段执行它们。我得到错误ENOENT: no such file or directory。我正在尝试类似的东西(为了简单和可重复性,我在这个例子中颠倒了创建的 Promise 的顺序):

const fs = require('fs');
const path = require('path');

async function test() {
    try {
        let file = path.resolve('test.txt');
        const rm = fs.promises.rm(file);
        const writeFile = fs.promises.writeFile(file, 'foo');
        await writeFile;
        await rm;
    } catch(err) {
        console.log(err);
    }
}

所以在我看来,这个操作在实际执行之前就抛出了。我能做些什么来防止过早地部分执行rm操作吗?

标签: javascriptpromisefs

解决方案


你这样做的顺序错误。承诺可以在 await 调用之前开始完成。你应该做await writeFile之前const rm =


推荐阅读