创建自己的记录器功能

问题描述

我正在学习Node.js及其文件系统,我有一个任务来创建自己的自定义记录器功能

            let data = await ec2.runInstances(params).promise();
                    
           
            let result = await codeDeploy.createDeployment({
                  applicationName: '<name>',/* required */
                  autoRollbackConfiguration: {
                       enabled: true,events: [
                           'DEPLOYMENT_FAILURE'
                       ]
                  },deploymentConfigName: 'CodeDeployDefault.AllAtOnce',deploymentGroupName: `<your-group-name>`,fileExistsBehavior: 'OVERWRITE',updateOutdatedInstancesOnly: true 
              }).promise();

应使用文件中记录的所有参数创建文件。该文件应始终最多包含10行(10条记录的消息)。但是我主要遇到的问题是,我的函数仅记录最后一个记录器调用-在这种情况下为“ lll”。我将打开txt文件的时间和关闭文件的时间打印到控制台。对于所有呼叫,它是相同的打开时间和相同的关闭时间。这就是为什么输出总是最后一个呼叫的原因。

但是我不知道如何解决

myLogger('aaa')
myLogger('bbb')
myLogger('ccc')
myLogger('ddd')
myLogger('eee')
myLogger('fff')
myLogger('ggg')
myLogger('hhh')
myLogger('iii')
myLogger('jjj')
myLogger('kkk')
myLogger('lll')

解决方法

好像您在myLogger()函数中返回了Promise。

在这种情况下,您应该在代码中使用async/await个东西。

async function myLogger() { ... }

await myLogger('aaa');
await myLogger('bbb');