Sobes.tech

Frontend

Gegeven een synchrone functie en een tijd in milliseconden. Het is nodig om een nieuwe versie van deze functie terug te geven, waarvan de uitvoering beperkt is tot de opgegeven tijd. Als de functie binnen de gegeven tijd wordt uitgevoerd, wordt de belofte opgelost met de verkregen gegevens. Als dat niet gebeurt, wordt de belofte afgewezen met de string 'time limit exceeded'.

141

Waarom kan de methode apply nodig zijn in de runOnce-oplossing?

141

/** * Het is nodig om een asynchrone functie te schrijven, * die "slaapt" voor het opgegeven aantal milliseconden, * en daarna succesvol eindigt * / function sleep(duration) { } // Voorbeeld const startTime = Date.now(); console.log("begin met slapen..."); sleep(2000).then(() => { console.log("Wakker na 2 seconden!"); console.log("Verstreken tijd: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Wakker na 1 seconde!"); console.log("Verstreken tijd: ", Date.now() - startTime); });

139

Zijn er problemen met het toevoegen van nieuwe methoden aan de prototypes van ingebouwde objecten?

139

/** * Implementeer de functie sumPromises, die * promises als argumenten accepteert en de som * van hun resultaten teruggeeft. * * De functie kan elk aantal argumenten accepteren. * Je kunt elke promise API gebruiken. */ // Code hier // Voorbeeld van gebruik const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

138

/** * Implementeer de runOnce-wrapperfunctie, die * een functie accepteert en een nieuwe functie retourneert. De * nieuwe functie kan slechts één keer worden aangeroepen, alle * volgende oproepen geven undefined terug. * * De ingepakte functie kan argumenten accepteren * en een resultaat retourneren. */ function runOnce(fn) { // jouw code } const logHello = (name) => { console.log(`hallo, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'hallo, Oleg!' logHelloOnce('Olga'); // undefined

136

/* Het is nodig om een functie te schrijven om de som te berekenen van alle numerieke waarden in een array. Geldige numerieke waarden zijn ook strings, die beginnen met cijfers. In dat geval moet je die beginreeks van cijfers gebruiken als numerieke waarde. De array kan elk datatype bevatten en niet plat zijn. **Gebruik geen ingebouwde methoden zoals .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

136

[naam] vroeg: Hoe lang duurde het om de MVP-versie van de speler te implementeren?

135

/** * De functie `asyncAuth(callback)` accepteert een callback, waarin * een fout (als eerste argument) en gegevens * van de backend (als tweede argument) kunnen worden doorgegeven. * asyncAuth((error, data) => {}); * * Je moet de functie `auth()` implementeren, * die `asyncAuth()` aanroept, maar een Promise teruggeeft. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * De functie `tryAuth()` gebruikt `auth()` en, in geval van fout, * voert N extra pogingen uit. * Als alle pogingen falen, geeft het de laatste fout terug. * * @returns {Promise} */ function tryAuth(n) { }

135

/** * Er zijn drie code-secties gegeven. Het is nodig om het resultaat van elke console.log te schrijven. */ 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);

133

Welke nieuwigheden van de ES6-standaard worden gebruikt in de geschreven code? Wat is het arguments-object en hoe verschilt het van rest-parameters?

132

Hoe arguments om te zetten naar een array op de oude manier (ES5), zonder Array.from en spread-operator?

132

Kunt u vertellen over de architecturale benaderingen die u in het project hebt gebruikt? Bent u bekend met Feature-Sliced Design (FSD)?

131

[naam] vroeg: Heb je ooit zelf extra jobs geschreven in de pipeline?

130

[naam] vroeg: Heb je ooit gewerkt aan het optimaliseren van snelheidsmetingen van diensten?

130

[naam] vroeg: Hoe was het werk aan een specifieke taak over het algemeen georganiseerd: wie bracht het en groomde het, hoe verliep het goedkeuringsproces, welke vragen kwamen tijdens de implementatie naar voren, en hoe loste je die op?

128

Wat gebeurt er als de timeout niet wordt opgeruimd na succesvolle uitvoering van de functie? Hoe kun je dit oplossen en welke belofte-methode is geschikt om de timeout in elk geval op te ruimen (zowel bij succes als bij fout)?

128

Implementeer de functie asyncAuth met een callback-interface die een Promise retourneert. Implementeer vervolgens de functie tryAuth(n), die asyncAuth gebruikt en bij een fout n extra pogingen onderneemt. Als alle pogingen falen, retourneert het de laatste fout.

128

/** * De functie `asyncAuth(callback)` accepteert een callback, waarin * een fout (als eerste argument) en gegevens * van de backend (als tweede argument) kunnen worden doorgegeven. * asyncAuth((error, data) => {}); * * Je moet de functie `auth()` implementeren, * die `asyncAuth()` aanroept, maar een Promise teruggeeft. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * De functie `tryAuth()` gebruikt `auth()` en, in geval van fout, * voert N extra pogingen uit. * Als alle pogingen falen, geeft het de laatste fout terug. * * @returns {Promise} */ function tryAuth(n) { }

128

Implementeer de functie withTimeout, die een functie en een tijd (milliseconden) accepteert en een nieuwe functie retourneert. Als de oorspronkelijke functie niet binnen de gestelde tijd wordt uitgevoerd, moet de belofte worden afgewezen.

126
/7