Получаю вот такую ошибку:
<--- Last few GCs --->
[8388:0000017556D986B0] 47399 ms: Scavenge (reduce) 2047.1 (2082.9) -> 2046.6 (2083.2) MB, 24.0 / 0.0 ms (average mu = 0.349, current mu = 0.300) allocation failure
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF70200815F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+114079
2: 00007FF701F954C6 DSA_meth_get_flags+65542
3: 00007FF701F9637D node::OnFatalError+301
4: 00007FF7028CBA0E v8::Isolate::ReportExternalAllocationLimitReached+94
5: 00007FF7028B5FED v8::SharedArrayBuffer::Externalize+781
6: 00007FF7027593BC v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1468
7: 00007FF702766069 v8::internal::Heap::PublishPendingAllocations+1129
8: 00007FF70276303A v8::internal::Heap::PageFlagsAreConsistent+2842
9: 00007FF702755C99 v8::internal::Heap::CollectGarbage+2137
10: 00007FF702753E50 v8::internal::Heap::AllocateExternalBackingStore+2000
11: 00007FF7027789D6 v8::internal::Factory::NewFillerObject+214
12: 00007FF7024AAEA5 v8::internal::DateCache::Weekday+1797
13: 00007FF702959701 v8::internal::SetupIsolateDelegate::SetupHeap+494417
14: 0000017558E13CDA
Имею вот такой код:
async function checknamedirect(arg) {
let check = await arg.startsWith('YT')
if (check) {
return true
}
}
async function checkitems(limit, check, second_limit, megaitem, new_item, check_years, years, check_views, views) {
let result = await Number(limit) <= Number(check) && Number(check) <= Number(second_limit) && megaitem == 'Y' + new_item && check_years <= years && check_views >= views
if (result) {
return true
} else {
return false
}
}
getFiles('./folder/', function (err, files) {
fs.mkdir('result/' + limit[1] + ' do ' + second_limit[1], err => {
console.log('Folder: '.green + limit[1] + ' do ' + second_limit[1] + ' was created');
});
fs.mkdir('result/' + limit[1] + ' do ' + second_limit[1] + '/Brand', err => {
console.log('Folder: '.green + 'Brand was created');
});
fs.mkdir('result/' + limit[1] + ' do ' + second_limit[1] + '/NoBrand', err => {
console.log('Folder:'.green +' NoBrand was created');
});
for (const megaitem of getDirectories('./folder/')) {
if (checknamedirect(megaitem)) {
for (const item of files) {
let direct = path.dirname(item)
const array = fs.readFileSync(item).toString().split("\n");
for (const item of array) {
let check = item.match(/Account (.+) Subs: (\d+)/)
let check_years = item.match(/Created: .+\/.+\/(\d+)/)
let check_monet = item.match(/Monetized: (.+) Created/)
let check_views = item.match(/View: (\d+)/)
let check_link = item.match(/Id: (.+) Title:/)
if (check != null && second_limit != null && check_monet != null && check_views != null && check_years != null && check_link != null || check != undefined && second_limit != undefined && check_monet != undefined && check_views != undefined && check_years != undefined && check_link != undefined) {
let new_item = direct.match(/Y(.+)/)
checkitems(limit[1], check[2], second_limit[1], megaitem, new_item[1], check_years[1], years[1], check_views[1], views[1]).then( data => {
if (data) {
if (findWord('Brand', item)) {
fska.copy('./folder/' + megaitem, './result/' + limit[1] + ' do ' + second_limit[1] + '/Brand/' + check_years[1] + '(Y) ' + check[2] + '(S) ' + check_monet[1] + '(M) ' + check_views[1] + '(V)' , err => {
console.log(megaitem + ' success copy! ' + ' BRAND'.red + ' ACCOUNT Subs: ' + check[2] + ' views: ' + check_views[1] + ' year: ' + check_years[1]);
fs.writeFile('./result/' + limit[1] + ' do ' + second_limit[1] + '/Brand/' + check_years[1] + '(Y) ' + check[2] + '(S) ' + check_monet[1] + '(M) ' + check_views[1] + '(V)' + '/link.txt', check_link[1], 'utf8', (err) => { });
});
} else {
fska.copy('./folder/' + megaitem, './result/' + limit[1] + ' do ' + second_limit[1] + '/NoBrand/' + check_years[1] + '(Y) ' + check[2] + '(S) ' + check_monet[1] + '(M) ' + check_views[1] + '(V)' , err => {
console.log(megaitem + ' success copy!' + ' Default'.green +' ACCOUNT Subs: ' + check[2] + ' views: ' + check_views[1] + ' year: ' + check_years[1]);
fs.writeFile('./result/' + limit[1] + ' do ' + second_limit[1] + '/NoBrand/' + check_years[1] + '(Y) ' + check[2] + '(S) ' + check_monet[1] + '(M) ' + check_views[1] + '(V)' + '/link.txt', check_link[1], 'utf8', (err) => { });
});
}
}
})
}
}
}
}
}
});
Первый раз сталкиваюсь с такой ошибкой, не пойму из-за чего она, но появилась после async/await в коде, возможно не так использую, как исправить ?