Sobes.tech

Frontend

Zašto može biti potrebna metoda apply u rešenju runOnce?

137

Дана је синхрона функција и време у милисекундама. Потребно је вратити нову верзију ове функције, чије извршавање је ограничено задатим временом. Ако се функција изврши у задатом времену — промиса се решава са добијеним подацима. Ако не, промиса се одбацује са стрингом 'time limit exceeded'.

137

/** * Неопходно је написати асинхрону функцију, * која ће "спавати" задати број милисекунди, * а затим успешно завршити * / 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); });

137

/** * Funkcija `asyncAuth(callback)` prihvata callback, u koji * se može proslediti greška (kao prvi argument) i podaci * sa backend-a (kao drugi argument). * asyncAuth((error, data) => {}); * * Potrebno je da implementirate funkciju `auth()`, * koja poziva `asyncAuth()`, ali vraća Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Funkcija `tryAuth()` koristi `auth()` i, u slučaju greške, * pravi N dodatnih pokušaja. * Ako svi ne uspeju, vraća poslednju grešku. * * @returns {Promise} */ function tryAuth(n) { }

135

/** * Implementirajte funkciju runOnce, koja prihvata * funkciju i vraća novu funkciju. Nova funkcija * može biti pozvana samo jednom, svi * naredni pozivi vraćaju undefined. * * Uključena funkcija može prihvatiti argumente * i vratiti rezultat. */ function runOnce(fn) { // vaš kod } const logHello = (name) => { console.log(`zdravo, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'zdravo, Oleg!' logHelloOnce('Olga'); // undefined

134

/** * Implementirajte funkciju sumPromises, koja prihvata * obećanja kao argumente i vraća zbir * njihovih rezultata. * * Funkcija može prihvatiti bilo koji broj argumenata. * Možete koristiti bilo koji API obećanja. */ // Kod ovde // Primer upotrebe const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

134

[ime] je pitao: Колико је трајала имплементација MVP верзије плејера?

133

Koje novine iz ES6 standarda se koriste u napisanom kodu? Šta je objekat arguments i čime se razlikuje od rest parametara?

130

/* Неопходно је написати функцију за сабирање све бројчане вредности у низу. Валидне бројчане вредности су такође стрингови, који почињу са цифрама. У овом случају, треба користити ту почетну секвенцу цифара као бројчану вредност. Низ може садржати било које типове података и не мора бити раван. **Не сме се користити уграђене методе као што су .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

130

Можете ли да нам кажете о архитектонским приступима које сте користили у пројекту? Да ли сте упознати са Feature-Sliced Design (FSD)?

129

[име] је питао: Како је уопште организован рад на одређеном задатку: ко га је довео и припремио, како је изгледао процес одобравања, која су питања настала током реализације и како сте их решавали?

128

Kako pretvoriti arguments u niz na stariji način (ES5), bez Array.from i spread operatora?

128

/** * Dat su tri odeljka koda. Potrebno je da napišete rezultat svakog 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);

127

Šta će se desiti ako ne očistite timeout nakon uspešnog izvršavanja funkcije? Kako to popraviti i koja metoda promise bi bila prikladna za čišćenje timeout-a u svakom slučaju (i pri uspehu i pri grešci)?

126

Implementirajte funkciju withTimeout, koja prihvata funkciju i vreme (milisekundi) i vraća novu funkciju. Ako se originalna funkcija ne izvrši u zadanom vremenu, obećanje treba biti odbačeno.

126

Implementirajte funkciju asyncAuth s callback interfejsom koja vraća Promise. Zatim implementirajte funkciju tryAuth(n), koja koristi asyncAuth i u slučaju greške pravi n dodatnih pokušaja. Ako svi pokušaji ne uspeju, vraća poslednju grešku.

126

[ime] je pitao: Koji je korišten testni okvir?

125

/** * Funkcija `asyncAuth(callback)` prihvata callback, u koji * može biti prosleđena greška (kao prvi argument) i podaci * sa backend-a (kao drugi argument). * asyncAuth((error, data) => {}); * * Potrebno je implementirati funkciju `auth()`, * koja poziva `asyncAuth()`, ali vraća Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * Funkcija `tryAuth()` koristi `auth()` i, u slučaju greške, * pravi N dodatnih pokušaja. * Ako svi ne uspeju, vraća poslednju grešku. * * @returns {Promise} */ function tryAuth(n) { }

124

Odredite da li je niz 'pangram' — niz koji sadrži svako slovo abecede bar jednom.

120

Kako ste radili sa menadžerima stanja? Da li ste koristili Redux?

117
/7