123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Промисификация:
- // каркас
- // function confirmPromise(text){
- // return new Promise((fulfill, reject) => {
- // //fulfill()
- // //reject()
- // })
- // }
- // confirm
- // Написать функцию промисифицирующую confirm.Функция должна принимать текст для confirm,
- // и создавать(а также возвращать) промис, который резолвится по нажатию ok, и реджектится по нажатию cancel в окне confirm.
- // prompt
- // Написать функцию промисифицирующую prompt.Функция должна принимать текст для prompt,
- // и создавать(а также возвращать) промис, который резолвится по нажатию ok с результатом, введенным пользователем,
- // и реджектится по нажатию cancel в окне prompt.
- // LoginForm
- // Промисифицировать LoginForm, сделать функцию, которая возвращает промис, и принимает настройки для LoginForm.
- // Промис должен резолвится с объектом вида { login, password }, reject - при нажатии отмен.
- //РЕШЕНИЕ
- function confirmPromise(text){
- return new Promise((fulfill, reject) => {
- confirm(text)?fulfill():reject()
- })
- }
- confirmPromise("ку-ку").then(result => console.log('Нажали ок')).catch(result => console.log('Нажали отмена'))
- function promptPromise(text){
- return new Promise((fulfill, reject) => {
- let x = prompt(text);
- x? fulfill(x) : reject()
- })
- }
- promptPromise("Сколько тебе лет?").then(result => console.log(result)).catch(result => console.log('Нажали отмена'))
-
- function formPromise(parent){
- return new Promise((fulfill, reject) => {
- const loginInput = document.createElement('input');
- const passInput = document.createElement('input');
- const signInBtn = document.createElement("button");
- const cancelBtn = document.createElement("button");
- loginInput.placeholder = 'login';
- passInput.placeholder = 'password';
- signInBtn.textContent = 'Sign in';
- cancelBtn.textContent = 'Cancel';
- parent.append(loginInput);
- parent.append(passInput);
- parent.append(signInBtn);
- parent.append(cancelBtn);
- signInBtn.onclick = () => {
- const user = { login: loginInput.value, password: passInput.value };
- fulfill(user)
- loginInput.value = '';
- passInput.value = '';
- }
- cancelBtn.onclick = () => {reject() }
- })
- }
- formPromise(loginForm).then(result => console.log(result)).catch(result => console.log('Нажали отмена'))
|