group-telegram.com/reactify_IT/1397
Create:
Last Update:
Last Update:
Два этапа тех собесов с задачами и вопросами. Вопросы были разнообразные: http, cors, browser и тд.
1. Переписать функцию с помощью async/await
getJson('json/1')
.then(json => {
if(json.key) {
return getJson('json/2')
}
throw new Error('No key')
})
.then(json => {
return json.key2
})
.catch(e => {
console.log(e)
})
2. Написать обертку вокруг нативного fetch, которая будет в случае ошибки пробовать еще retriesCount раз, и только потом упадет с ошибкой
function fetchWithRetries(retriesCount, ...fetchArgs) {
/* */
}
3. Типизировать функцию reduce чтобы она принимала дженерики:
function reduce(array, callback, initial) {
let acc = initial
for(let i = 0; i < array.length; i++) {
acc = callback(acc, array[i], i)
}
return acc
}
4. Написать функцию которая сворачивает диапазоны:
compress([1, 4, 3, 2]) // '1-4'
compress([1, 4]) //'1, 4'
5. Реализовать паттерн наблюдатель:
class Store {
/* */
}
const store = new Store()
const firstSubscriber = (data) => console.log('first', data)
const secondSubscriber = (data) => console.log('second', data)
store.subscribe(firstSubscriber)
store.subscribe(secondSubscriber)
store.data = {newKey: 'newString'}
/** CONSOLE
* first {newKey: 'newString'}
* second {newKey: 'newString'}
*/
store.unsubsribe(firstSubscriber)
/** CONSOLE
* second {newKey: 'newString'}
*/
}
#interview #frontend