Всем привет! Начал изучать асинхронность, и уже поплыл на первой простой задаче. В общем задача:
Напишите функцию, которая принимает имена двух файлов и вызывает функцию, переданную третьим параметром и передает ей первым аргументом сумму их размеров.
Для получения размера файла необходимо использовать функцию getFileSize(filename, cb)
.
let fileSizes = {
testFile1: 65,
testFile2: 48,
}
function getFileSize(filename, cb) {
setTimeout(() => cb(fileSizes[filename]), Math.random() * 500);
}
function sumFileSizes(filename1, filename2, cb) {
//Ваш код...
}
Я прикинул пока что вот так:
function sumFileSizes(filename1, filename2, cb) {
setTimeout(() => {
const a = cb(filename1, cb)
setTimeout(() => {
const b = a + cb(filename2, cb)
setTimeout(() => {
cb(b)
}, 0)
}, 0)
}, 600)
}
sumFileSizes(fileSizes.testFile1, fileSizes.testFile2, getFileSize)
, но выяснилось, что функция getFileSize, которую трогать нельзя вроде как не правильно работает, либо у меня уже мозги не варят (100% второе))
. Ну и само решение я уверен не правильное… Не решите, а направьте на путь истинный пожалуйста)