|
@@ -0,0 +1,69 @@
|
|
|
+
|
|
|
+// Промисификация:
|
|
|
+// каркас
|
|
|
+// 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('Нажали отмена'))
|
|
|
+
|