Промисы синхронные и асинхронные - практика Flashcards

1
Q

Промисы синхронные и асинхронные

A

const repo = {
save(data) {
try {
localStorage.setItem(‘some-key’, JSON.stringify(data))
} catch(error) {
return false
}
return true
},

saveAsync(data) {
const promise = new Promise ((resolve, rejected) => {
try {
localStorage.setItem(‘some-key’, JSON.stringify(data))
resolve()
} catch(error) {
rejected(error)
}
})
return promise
},

read() {
return new Promise((res, rej) => {
const data = localStorage.getItem(‘some-key’);
if (!data) {
res(null)
} else {
res(JSON.parse(data))
}

}

}

const result = repo.save({name: ‘IT-KAMASUTRA’})
if(result) {
console.log(‘SAVED’)
} else {
console.warn(‘NOT SAVED’)
}

const promise = repo.saveAsync({name: ‘IT-KAMASUTRA’})
promse
.then(() => console.log(‘SAVED’)) - ждем результата промиса
.catch(error => console.warn(‘NOT SAVED: ‘ + error))
или
const run async () => {
await repo.saveAsync({name: ‘IT-KAMASUTRA’})
console.log(‘SAVED’)

const data = await.repo.read()
console.log(data)
}
run()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly