Додан функсияи синхронӣ ва вақт дар миллисекундҳо. Шумо бояд нусхаи навро аз ин функсия баргардонед, ки иҷрои он маҳдуд ба вақти муайяншуда аст. Агар функсия дар вақти муайяншуда иҷро шавад, ваъда бо маълумоти гирифташуда ҳал мешавад. Агар не, ваъда бо сатр 'time limit exceeded' рад карда мешавад.
Frontend
Оё дар илова кардани усулҳои нав ба прототипҳои объектҳои дарунсохт мушкилот вуҷуд дорад?
/** * Необходиамо е да напишете асинхронна функция, * която ще "спи" зададения брой милисекунди, * и след това успешно ще завърши * / function sleep(duration) { } // Пример const startTime = Date.now(); console.log("начало на съня..."); sleep(2000).then(() => { console.log("Събудих се след 2 секунди!"); console.log("Изминало време: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Събудих се след 1 секунда!"); console.log("Изминало време: ", Date.now() - startTime); });
Чаро дар ҳалли runOnce метавонад ба методи apply ниёз дошта бошад?
/** * функсияи sumPromises-ро амалӣ кунед, ки * ваъдаҳоро ҳамчун аргумент қабул мекунад ва * ҷамъоварии натиҷаҳои онҳоро бармегардонад. * * функсия метавонад ҳар миқдори аргументро қабул кунад. * Ҳар гуна API-и ваъдаҳоро истифода бурда мешавад. */ // Код дар ин ҷо // Мисоли истифода const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3
/* Необходимо написать функцию для подсчёта суммы всех числовых значений в массиве. Допустимыми числовыми значениями являются также строки, которые начинаются с цифр. В этом случае в качестве числового значения нужно использовать эту начальную последовательность цифр. Массив может содержать любые типы данных и быть не плоским. **Нельзя использовать встроенные методы типа .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));
[ном] пурсид: Вақти ки вақти барои иҷрои нусхаи MVP-и бозигар лозим шуд, чанд буд?
/** * `asyncAuth(callback)` функция принимает callback, в который * можно передать ошибку (первым аргументом) и данные * с бекенда (вторым аргументом). * asyncAuth((error, data) => {}); * * Вам нужно реализовать функцию `auth()`, * которая вызывает `asyncAuth()`, но возвращает Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Функция `tryAuth()` использует `auth()` и, в случае ошибки, * совершает N дополнительных попыток. * Если все попытки провалились, возвращает последнюю ошибку. * * @returns {Promise} */ function tryAuth(n) { }
/** * Ижро эти RunOnce қаптама функциясини, у * функция қабул қилади ва янги функция қайтарди. Янгиси * функция фақат бир марта чақирилиши мумкин, барча * кейинги чақиришлар undefined қайтаришади. * * Қапланган функция аргументларни қабул қилиши * ва натижани қайтариши мумкин. */ function runOnce(fn) { // сизинг кодиңиз } const logHello = (name) => { console.log(`салом, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'салом, Oleg!' logHelloOnce('Olga'); // undefined
Чӣ гуна arguments-ро бо роҳи кӯҳна (ES5) ба массив табдил додан мумкин аст, бе Array.from ва spread-оператор?
Кадом навигарии аз стандартии ES6 дар коди навишта истифода мешаванд? Объекти arguments чист ва чӣ фарқе дорад аз параметрҳои rest?
/** * Три секции кода са дадени. Необходимо е да напишете резултата от всяко console.log. */ var n = 1; function F(n) { n = 3; } F(n); console.log(n); var obj = { a: 1 }; function F1(o) { o.a = 5; } F1(obj); console.log(obj); var obj = { a: 1 }; function F2(o) { o = { hello: 1 }; } F2(obj); console.log(obj);
Оё метавонед дар бораи муносибатҳои меъмории, ки дар лоиҳа истифода бурдаед, нақл кунед? Оё бо Feature-Sliced Design (FSD) шиносед?
[ном] пурсид: Тартиброи умумӣ дар бораи кор дар рӯи вазифаи муайян чӣ гуна буд: онро кӣ овард ва омода кард, чӣ гуна раванди тасдиқкунӣ буд, кадом саволҳо дар вақти иҷро пайдо мешуданд ва шумо онҳоро чӣ гуна ҳал мекардед?
Иҷрои функсияи asyncAuth бо интерфейси callback, ки Promise-ро бармегардонад. Пас, функсияи tryAuth(n)-ро иҷро кунед, ки аз asyncAuth истифода мекунад ва дар ҳолати хато n кӯшиши иловагӣ мекунад. Агар ҳамаи кӯшишҳо ноком шаванд, хатоҳои охиринро бармегардонад.
[ном] пурсид: Оё тоҷикии пайплайнда иловагӣ вазифаҳо навиштедед?
/** * `asyncAuth(callback)` функцията приема callback, в който * може да бъде предадена грешка (като първи аргумент) и данни * от бекенда (като втори аргумент). * asyncAuth((error, data) => {}); * * Трябва да реализирате функцията `auth()`, * която извиква `asyncAuth()`, но връща Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * Функцията `tryAuth()` използва `auth()` и, в случай на грешка, * прави N допълнителни опита. * Ако всички се провалят, връща последната грешка. * * @returns {Promise} */ function tryAuth(n) { }
Агар тайм-аутро пас аз иҷрои муваффақонаи функсия тоза накунад, чӣ мешавад? Инро чӣ гуна бояд ислоҳ кард ва кадом усули ваъда барои тоза кардани тайм-аут дар ҳар ҳол (ва муваффақият ва хато) мувофиқ аст?
[ном] пурсид: Оё шумо ҳеҷ гоҳ дар оптимизатсияи метрикҳои суръатии хизматрасониҳо кор кардаед?
Функсияи withTimeout-ро амалӣ кунед, ки функсия ва вақт (миллисекунд) мегирад ва функсияи навро бармегардонад. Агар функсияи аслӣ дар вақти муайяншуда иҷро нашавад, ваъда бояд рад карда шавад.