带有async的promise.all和等待不等待文件写入

我对异步和等待的一种行为感到困惑。我有一个promise.all,其中的地图调用了另一个异步函数。在该异步函数中,我有一个写有回调的fs.writeFile()功能文件。一旦所有的诺言都兑现了,我想做些事情。但是, fs.writefile() 回调总是迟到。即首先打印在promise.all之后编写的控制台,然后再打印zip完成控制台。

下面是代码:

ingite = async () => {
    let users = await storage.getData('users');

    let result = await Promise.all(
        users.map( async user =>{
            await datagenerator.fetchAllData(user.user);
        })
    );
    if(result) {

        console.log("All Done -->");
    }
}

被调用的功能

fetchAllData = async  (username) => {



    await fs.writeFile(`${global.appRoot}/user_data/${username}/test.html`,template,function(err) {
        if (err) {
        console.log(err);
        } else {
            zipFolder(`${global.appRoot}/user_data/${username}`,`${global.appRoot}/user_zip/${username}-info.zip`,function(err) {
            if(err) {

            } else {
                const file = `${global.appRoot}/user_zip/info.zip`;
                console.log('ZIP generated successfully for -->',username);
            }
            });
        }
    });

在这里,某些用户在代码'ZIP generated successfully for -->'中是

console.log("All Done -->");

有人可以建议我出什么事吗?

pjle1101 回答:带有async的promise.all和等待不等待文件写入

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3125296.html

大家都在问