Создать класс, который производит экземпляр со следующими свойствами: - promise - промис, который создается во время запуска конструктора; - reject - метод, при выполнении которого promise реджектится; - resolve - метод, при выполнении которого promise резолвится.
class Prom {...}
const inst = new Prom();
inst.promise.then(data => console.log(data));
inst.resolve('test');
→ test
я делаю такой код, но не могу понять логику выполнения.
class Prom {
constructor () {
this.promise = new Promise ((res,rej)=>{
setTimeout(()=>{
res('text')
},100)
})
}
resolve(value){
return new Promise((res,rej)=>{
setTimeout(()=>{
res(value)
})
})
}
}
const inst = new Prom();
inst.promise.then((data)=> console.log(data));
inst.resolve('text');
В конструктор Promise передается функция, которая принимает 2 параметра. Один из параметров переводит Promise в статус resolve. Второй - в статус reject.
Поэтому для решения всей задачи достаточно сохранить эти методы в поля класса и вызвать их в нужных методах:
class Prom {
constructor() {
this.promise = new Promise((res, rej) => {
this.res = res;
this.rej = rej;
})
}
resolve(value) {
this.res(value);
}
reject(reason) {
this.rej(reason);
}
}
const inst = new Prom();
inst.promise.then((data) => console.log(data));
inst.resolve('text');
const inst2 = new Prom();
inst2.promise.then((data) => console.log(data), (reason) => console.log(`rejected with reason: ${reason}`));
inst2.reject('manual');
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет, есть вот такая диллема, и я не могу понять что здесь происходит:
Пробовал использовать метод windowclose(); но он работает не во всех браузерах и в консоли появляется строка: Scripts may close only the windows that were opened by it
Подскажите как можно реализовать такую сортировкуНет ни каких идей