ChatCrawlersearch across public Telegram Open the app
A

As For JS - Talks

snapshot for June 2025
June 2025 ×
30 June 2025
var resolver = ( (theArr) => ( new Promise( (doRes, doRej) => ( theArr.reduce( (theAcc, thePr) => ( thePr.then( doRes , (theReason) => ( (theAcc.push(theReason) === theArr.length) && doRej(theAcc) ) ) , theAcc ) , [] ) ) ) ) ); var theInput = [ Promise.reject(1) , Promise.reject(2) , Promise.reject(3) ]; resolver(theInput) .then( (theRes) => console.log({ theRes }) , (theErr) => console.log({ theErr }) );
ну и лишние итерации, они же могут быть тяжелыми
М
и получается что код из оригинального видео более предпочтительный
I
id 1724672644Ссылка
(() => { // Фабрика «плавающего» промиса, который через указанное время резолвится случайным числом function makePromise(name, delay) { return new Promise(resolve => { setTimeout(() => { const value = Math.floor(Math.random() * 100); // console.log(`${name} -> resolved with`, value); resolve(value); }, delay); }); } // Исходный массив промисов: сразу отклонённых (для демонстрации any уходит в catch) const p1 = Promise.reject('initial error 1'); const p2 = Promise.reject('initial error 2'); let promises = [p1, p2]; function resolverWithSwap() { Promise.any(promises) .then(res => { console.log('Promise.any:', res); }) .catch(err => { console.warn('Promise.any rejected:', err); // Здесь мы «меняем» массив: создаём новые промисы, // которые разрешатся через 1‒2 секунды случайными числами. promises = [ makePromise('newP1', 1000), makePromise('newP2', 2000), ]; // Теперь allSettled будет смотреть именно на новые промисы Promise.allSettled(promises) .then(results => { console.log('Results of allSettled:'); results.forEach((r, i) => { if (r.status === 'fulfilled') { console.log(` promise #${i + 1} fulfilled with`, r.value); } else { console.log(` promise #${i + 1} rejected with`, r.reason); } }); }); }); } // Запускаем resolverWithSwap(); })()
I
id 1479741445(() => { // Фабрика «плавающего» промиса, который через указанное время резолвится случайным числом function makePromise(name, delay) { return new Promise(resolve => { setTimeout(() => { const value = Math.floor(Math.random() * 100); // console.log(`${name} -> resolved
Пример немного надуманный, но суть в том, что в асинхронном коде мы не можем быть уверенны, что результат асинхронного вызова в allSettled вернёт те же значения что и в any
P
Подскажите, пожалуйста, по поводу csrf токенов. Если я правильно понимаю, то на страничку запихиваем рандомную строку. Где-то еще её храним в сессионной куке в зашифрованом виде, например При отправке запросов отправляем с запросом отправляем и строку со страницы. Соравниваем с ней же в куке, если совпадают, то ок делаем что положено, если не совпадают, то реджектим запрос. Это то как понял CSRF защиту. Не могу понять от чего это защищает собственно? По ощущениям ни от чего(
I
id 8026120115А шо за задача?
Никакой задачи. Делал пррстенькую регистрацию, аутентификацию на пхп через start_session и псевдо рефреш токеном. Теперь добрался до csrf, но не понял 🫤, а какой смысл 🤷?
Open in Telegram Каталог площадок Искать в ChatCrawler

A snapshot of an open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog