Ему потребуется O(log K) умножений большого на большое (которое делается за O(L^2), где L - длина числа, которая будет O(K)).Умножение также можно свести к бинарному алгоритму. Нет принципиальной разницы между
Получается если промис завершается при первом вызове resolve или reject тогда как можно обработать все файлы?Отдельно получить массив имён файлов, map'ом превратить его в массив промисов ридера, дождаться их выполнения. Я же вам написал пример.
p.s. хотел спросить, зачем вы ставите запятые? Там где закрывающие круглые скобки. Они-же там не нужны.Это стайлгайд Airbnb https://github.com/airbnb/javascript
const getFileList = (mask) => new Promise(
(resolve, reject) => glob(
mask,
{},
(error, files) => {
if (error) {
reject(error);
}
resolve(files);
},
);
};
const cssFileList = await getFileList(`${__dirname}/build/**/*.css`);
const cssFileContentList = await Promise.all(
cssFileList.map(
(name) => fsPromises.readFile(name, { encoding: 'utf8' }),
),
);
console.log(cssFileContentList);
async function test() {
return new Promise(
(resolve, reject) => setTimeout(() => resolve('done'), 1000),
);
}
console.log(test()); // Promise { <state>: "pending" }
console.log(await test()); // "done"
const getFileList = (mask) => new Promise(
(resolve, reject) => glob(
mask,
{},
(error, files) => {
if (error) {
reject(error);
}
resolve(files);
},
);
};
const cssFileList = await getFileList(`${__dirname}/build/**/*.css`);
То же касается и "второй" стороны, СУБД не позволит изменить значение в ссылочной таблице или удалить его (потому что записи в нашей таблице при этом "потеряют" ссылку) - такая попытка корректировки приведёт к ошибке.В эту сторону поведение регулируется. Может быть режим запрета изменений, который вы описали, а может быть каскадный режим, когда в связанной таблице автоматически изменятся значения ссылочного поля или удалятся связанные строки.