Spiega cosa succede con l'involucro Promise se asyncCall per errore chiama più volte il callback passato: prima con un errore, poi con i dati e infine di nuovo con un errore.
Frontend
Dove in una vera applicazione potrebbe essere utile la funzione callLimit con la possibilità di resettare il contatore?
Qual è la differenza tra 'key in result' e 'result.hasOwnProperty(key)'?
Come si può ottenere un valore numerico da this (oltre a Number(this))?
Come si può trasformare un pseudo-array arguments in un vero array? Nomina diversi metodi.
/** * Implementare la funzione compose, che accetta * un numero variabile di funzioni e ne restituisce una nuova. * Il risultato di ogni funzione viene passato alla successiva. */ // Codice qui const square = (x) => x * x; const times2 = (x) => x * 2; const sum = (a, b) => a + b; console.clear(); console.log(compose(square, times2)(2) === square(times2(2))); console.log(compose(square, times2, sum)(3, 4) === square(times2(sum(3, 4))));
Scrivi una funzione sleep che restituisce una Promise e si completa dopo il numero di millisecondi specificato.
Implementa la funzione sumPromises, che accetta promesse come argomenti e restituisce la somma dei loro risultati. La funzione può accettare qualsiasi numero di argomenti, è possibile utilizzare qualsiasi API di promesse.
Perché il tempo di esecuzione di sleep non è esattamente 1000 e 2000 millisecondi, ma leggermente di più? Cosa influisce sul ritardo?
Implementare il metodo Array.prototype.groupBy, che restituisce una versione strutturata dell'array di oggetti, dove ogni chiave è il risultato della chiamata della funzione passata, e il valore è un array di elementi corrispondenti a questa chiave.
/** * Implementare la funzione sumPromises, che prende * come argomenti delle promesse e restituisce la somma * dei risultati del loro completamento. * * La funzione può accettare qualsiasi numero di argomenti. * È possibile usare qualsiasi API di promesse. */ // Codice qui // Esempio di utilizzo const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3
[nome] ha chiesto: In caso di sviluppo parallelo, i performer hanno chiarito essi stessi i contratti?
Perché si utilizza Array.prototype.slice.call(arguments)? Come funzionano call e apply?
9. Copia Durante un esame, il professor Floyd ha notato che alcuni studenti si scambiavano appunti. All'inizio voleva mettere a tutti un 2, ma il professore era gentile, quindi ha deciso di dividere gli studenti in due gruppi: quelli che consentono di copiare e di mettere solo il primo gruppo con un 2. Il professore ha registrato tutte le coppie di studenti che si sono scambiati appunti. È necessario determinare se è possibile dividere gli studenti in due gruppi in modo che ogni scambio di appunti avvenga da uno studente di un gruppo a uno dell'altro. Formato di input Nella prima riga ci sono due numeri N e M — il numero di studenti e il numero di coppie di studenti che si scambiano appunti (1 ≤ N ≤ 10^2, 0 ≤ M ≤ N(N-1)/2). Successivamente, in M righe, sono descritte le coppie di studenti: due numeri corrispondenti ai numeri degli studenti che si scambiano appunti (la numerazione degli studenti inizia da 1, ogni coppia di studenti viene elencata non più di una volta). Formato di output Deve essere stampata la risposta al problema del professore Floyd. Se è possibile dividere gli studenti in due gruppi, stampa YES; altrimenti, NO.
Quali altri metodi dell'API Promise conosci oltre a Promise.all?
Parlami del tuo attuale posto di lavoro e del progetto
/** * Implementa la funzione isMonotonic, che prende * un array di numeri e determina se è * monotono (non crescente o non decrescente). * * @param {Array<number>} numbers - array di numeri * @return {boolean} - true se l'array è monotono, altrimenti false */ function isMonotonic(numbers) { // il tuo codice qui }
Riscrivere la funzione strjoin in ES5 senza l'operatore rest
Ci sono problemi nell'aggiunta di nuovi metodi ai prototipi degli oggetti integrati?
Per ciascuno dei tre frammenti di codice JavaScript, determina cosa verrà visualizzato nella console e spiega le differenze nel comportamento di primitivi, oggetti e riassegnazioni di riferimenti.