Sobes.tech

Frontend

Duota sinchroninė funkcija ir laikas milisekundėmis. Reikia grąžinti šios funkcijos naują versiją, kurios vykdymas yra ribojamas nurodytu laiku. Jei funkcija įvykdoma per nustatytą laiką, pažadas išsprendžiamas su gautais duomenimis. Jei ne, pažadas atmetamas su eilute 'time limit exceeded'.

141

Ar yra problemų pridėti naujų metodų prie įmontuotų objektų prototipų?

139

/** * Reikia parašyti asinchroninę funkciją, * kuri "miegos" nurodytą milisekundžių skaičių, * ir tada sėkmingai užbaigs darbą * / function sleep(duration) { } // Pavyzdys const startTime = Date.now(); console.log("pradedu miegoti..."); sleep(2000).then(() => { console.log("Prabudau po 2 sekundžių!"); console.log("Praėjęs laikas: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Prabudau po 1 sekundės!"); console.log("Praėjęs laikas: ", Date.now() - startTime); });

139

Kodėl gali būti reikalingas metodas apply runOnce sprendime?

137

/** * Implementuokite funkciją sumPromises, kuri * priima pažadus kaip argumentus ir grąžina * jų rezultatų sumą. * * Funkcija gali priimti bet kokį argumentų skaičių. * Bet kurį pažadų API galima naudoti. */ // Kodas čia // Pavyzdys naudojimo const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

/* Reikia parašyti funkciją, kuri suskaičiuoja visų skaitinių reikšmių sumą masyve. Galiojančios skaitinės reikšmės taip pat yra eilutės, kurios prasideda skaitmenimis. Tokiu atveju, šios pradžios skaitmenų sekos reikia naudoti kaip skaitinę reikšmę. Masyvas gali būti bet kurio duomenų tipo ir nebūti plokščias. **Negalima naudoti įmontuotų metodų kaip .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

136

[vardas] paklausė: Kiek laiko užtruko žaidėjo MVP versijos įgyvendinimas?

135

/** * `asyncAuth(callback)` funkcija priima callback, į kurį * gali būti perduota klaida (pirmas argumentas) ir duomenys * iš backend'o (antras argumentas). * asyncAuth((error, data) => {}); * * Jums reikia įgyvendinti `auth()` funkciją, * kuri kviečia `asyncAuth()`, bet grąžina Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * `tryAuth()` funkcija naudoja `auth()` ir, jei įvyksta klaida, * atlieka N papildomų bandymų. * Jei visi bandymai nepavyksta, grąžina paskutinę klaidą. * * @returns {Promise} */ function tryAuth(n) { }

135

/** * Įgyvendinkite runOnce apipavidalinimo funkciją, kuri * priima funkciją ir grąžina naują funkciją. Nauja * funkcija gali būti iškviesta tik vieną kartą, visi * vėlesni iškvietimai grąžina undefined. * * Apgaubta funkcija gali priimti argumentus * ir grąžinti rezultatą. */ function runOnce(fn) { // tavo kodas } const logHello = (name) => { console.log(`labas, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'labas, Oleg!' logHelloOnce('Olga'); // undefined

134

Kaip pakeisti arguments į masyvą senąja (ES5) būdu, be Array.from ir spread operatoriaus?

132

Kokios naujovės iš ES6 standarto naudojamos rašytame kode? Kas yra arguments objektas ir kaip jis skiriasi nuo rest parametrų?

130

Ar galite papasakoti apie architektūrinius požiūrius, kuriuos naudojote projekte? Ar pažįstate Feature-Sliced Design (FSD)?

129

/** * Du kodų sekcijos yra pateiktos. Reikia parašyti kiekvieno console.log rezultatą. */ 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);

129

[vardas] paklausė: Kaip apskritai organizuotas darbas prie konkrečios užduoties: kas ją pristatė ir paruošė, kaip vyko patvirtinimo procesas, kokius klausimus iškilo įgyvendinimo metu ir kaip juos sprendėte?

128

Įgyvendinkite asyncAuth funkciją su callback sąsaja, kuri grąžina Promise. Tada įgyvendinkite tryAuth(n) funkciją, kuri naudoja asyncAuth ir klaidos atveju atlieka n papildomų bandymų. Jei visi bandymai žlunga, grąžina paskutinę klaidą.

128

Kas nutiks, jei po sėkmingo funkcijos vykdymo laiko limitas nebus išvalytas? Kaip tai ištaisyti ir kuri pažado metodas tiktų laiko limitui išvalyti bet kokiu atveju (sėkmės ir klaidos)?

126

/** * `asyncAuth(callback)` funkcija priima callback, į kurį * gali būti perduota klaida (kaip pirmas argumentas) ir duomenys * iš backend'o (kaip antras argumentas). * asyncAuth((error, data) => {}); * * Jums reikia įgyvendinti funkciją `auth()`, * kuri kviečia `asyncAuth()`, bet grąžina Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * `tryAuth()` funkcija naudoja `auth()` ir, jei įvyksta klaida, * atlieka N papildomų bandymų. * Jei visi nepavyksta, grąžina paskutinę klaidą. * * @returns {Promise} */ function tryAuth(n) { }

126

Įgyvendinkite withTimeout funkciją, kuri priima funkciją ir laiką (milisekundėmis) ir grąžina naują funkciją. Jei pradinė funkcija nebus įvykdyta nustatytu laiku, pažadas turi būti atmestas.

126

[vardas] paklausė: Koks testų rėmelis buvo naudojamas?

125

[vardas] paklausė: Ar kada nors pats parašei papildomus darbus pipeline'а?

125
/7