Промисы синхронные и асинхронные - практика Flashcards
Промисы синхронные и асинхронные
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()