Sobes.tech

Frontend

Gegeben ist eine synchrone Funktion und eine Zeit in Millisekunden. Es soll eine neue Version dieser Funktion zurückgegeben werden, deren Ausführung durch die angegebene Zeit begrenzt ist. Wenn die Funktion innerhalb der vorgegebenen Zeit ausgeführt wird, wird das Versprechen mit den erhaltenen Daten erfüllt. Wenn nicht, wird das Versprechen mit der Zeichenkette 'time limit exceeded' abgelehnt.

141

Warum könnte die Methode apply in der Lösung runOnce notwendig sein?

141

/** * Es ist notwendig, eine asynchrone Funktion zu schreiben, * die "schläft" für die angegebene Anzahl von Millisekunden, * und dann erfolgreich endet * / function sleep(duration) { } // Beispiel const startTime = Date.now(); console.log("Schlaf beginnt..."); sleep(2000).then(() => { console.log("Aufgewacht nach 2 Sekunden!"); console.log("Verstrichene Zeit: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Aufgewacht nach 1 Sekunde!"); console.log("Verstrichene Zeit: ", Date.now() - startTime); });

139

Gibt es Probleme beim Hinzufügen neuer Methoden zu den Prototypen eingebauter Objekte?

139

/** * Implementieren Sie die Funktion sumPromises, die * Versprechen als Argumente akzeptiert und die Summe * ihrer Ergebnisse zurückgibt. * * Die Funktion kann beliebig viele Argumente akzeptieren. * Es können beliebige Promise-APIs verwendet werden. */ // Hier Code // Beispiel für die Verwendung const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

138

/* Es ist notwendig, eine Funktion zu schreiben, um die Summe aller numerischen Werte in einem Array zu berechnen. Gültige numerische Werte sind auch Strings, die mit Ziffern beginnen. In diesem Fall sollte diese Anfangssequenz von Ziffern als numerischer Wert verwendet werden. Das Array kann beliebige Datentypen enthalten und nicht flach sein. **Es dürfen keine eingebauten Methoden wie .flat, .flatMap verwendet werden** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

136

/** * Implementieren Sie die Wrapper-Funktion runOnce, die * eine Funktion akzeptiert und eine neue Funktion zurückgibt. Die * neue Funktion kann nur einmal aufgerufen werden, alle * nachfolgenden Aufrufe geben undefined zurück. * * Die eingewickelte Funktion kann Argumente akzeptieren * und ein Ergebnis zurückgeben. */ function runOnce(fn) { // dein Code } const logHello = (name) => { console.log(`hallo, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'hallo, Oleg!' logHelloOnce('Olga'); // undefined

136

[name] fragte: Wie lange hat die Umsetzung der MVP-Version des Players gedauert?

135

/** * Die Funktion `asyncAuth(callback)` akzeptiert einen Callback, in den * ein Fehler (als erstes Argument) und Daten * vom Backend (als zweites Argument) übergeben werden können. * asyncAuth((error, data) => {}); * * Du musst die Funktion `auth()` implementieren, * die `asyncAuth()` aufruft, aber ein Promise zurückgibt. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Die Funktion `tryAuth()` verwendet `auth()` und, im Fehlerfall, * führt N zusätzliche Versuche durch. * Wenn alle Versuche fehlschlagen, gibt sie den letzten Fehler zurück. * * @returns {Promise} */ function tryAuth(n) { }

135

/** * Es sind drei Codeabschnitte gegeben. Es ist notwendig, das Ergebnis jedes console.log zu schreiben. */ 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

Welche Neuerungen des ES6-Standards werden im geschriebenen Code verwendet? Was ist das Objekt arguments und wie unterscheidet es sich von Rest-Parametern?

132

Wie man arguments auf alte Weise (ES5) in ein Array umwandelt, ohne Array.from und Spread-Operator?

132

Können Sie über die architektonischen Ansätze sprechen, die Sie im Projekt verwendet haben? Sind Sie mit Feature-Sliced Design (FSD) vertraut?

131

[name] fragte: Hast du jemals zusätzliche Jobs in der Pipeline selbst geschrieben?

130

[name] fragte: Hast du jemals an der Optimierung von Geschwindigkeitsmetriken von Diensten gearbeitet?

130

[name] fragte: Wie war die Arbeit an einer konkreten Aufgabe im Allgemeinen organisiert: Wer brachte sie ein und bereitete sie vor, wie verlief der Genehmigungsprozess, welche Fragen tauchten während der Umsetzung auf, und wie lösten Sie diese?

128

Was passiert, wenn der Timeout nach erfolgreicher Ausführung der Funktion nicht gelöscht wird? Wie kann man das beheben und welche Promise-Methode eignet sich zum Löschen des Timeouts in jedem Fall (bei Erfolg und bei Fehler)?

128

Implementieren Sie die Funktion asyncAuth mit einer Callback-Schnittstelle, die ein Promise zurückgibt. Dann implementieren Sie die Funktion tryAuth(n), die asyncAuth verwendet und im Fehlerfall n zusätzliche Versuche unternimmt. Wenn alle Versuche fehlschlagen, gibt sie den letzten Fehler zurück.

128

/** * Die Funktion `asyncAuth(callback)` akzeptiert einen Callback, in den * ein Fehler (als erstes Argument) und Daten * vom Backend (als zweites Argument) übergeben werden können. * asyncAuth((error, data) => {}); * * Sie müssen die Funktion `auth()` implementieren, * die `asyncAuth()` aufruft, aber ein Promise zurückgibt. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * Die Funktion `tryAuth()` verwendet `auth()` und, im Fehlerfall, * führt N zusätzliche Versuche durch. * Wenn alle Versuche fehlschlagen, gibt sie den letzten Fehler zurück. * * @returns {Promise} */ function tryAuth(n) { }

128

Implementieren Sie die Funktion withTimeout, die eine Funktion und eine Zeit (Millisekunden) akzeptiert und eine neue Funktion zurückgibt. Wenn die ursprüngliche Funktion nicht innerhalb der festgelegten Zeit ausgeführt wird, soll das Versprechen abgelehnt werden.

126
/7