问题描述
我正在学习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');