script.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* function confirmPromise(text){
  2. return new Promise((fulfill, reject) => {
  3. //fulfill()
  4. //reject()
  5. })
  6. } */
  7. /* confirm
  8. Написать функцию промисифицирующую confirm. Функция должна принимать текст для confirm, и создавать (а также возвращать) промис, который резолвится по нажатию ok, и реджектится по нажатию cancel в окне confirm. */
  9. /* function confirmPromise(text){
  10. return new Promise((fulfill, reject) => {
  11. confirm(text) ? fulfill(): reject();
  12. })
  13. }
  14. confirmPromise('is this promis');
  15. */
  16. /* function confirmPrompt(text){
  17. return new Promise((fulfill, reject) => {
  18. let answ = prompt(text);
  19. answ ? fulfill(answ): reject('Error');
  20. })
  21. }
  22. confirmPrompt('is this promis').then( res => console.log(res)); */
  23. /* LoginForm
  24. Промисифицировать LoginForm, сделать функцию, которая возвращает
  25. промис, и принимает настройки для LoginForm. Промис должен резолвится с объектом вида {login, password}, reject - при нажатии отмен. */
  26. function LoginForm(parent = document.body){
  27. return new Promise((fulfill, reject) => {
  28. const inputLogin = document.createElement('input');
  29. const inputP = document.createElement('input');
  30. const btnOk = document.createElement('button');
  31. const btnCancel = document.createElement('button');
  32. btnCancel.innerText = 'Cancel';
  33. btnOk.innerText = 'OK';
  34. parent.append(inputLogin, inputP, btnOk, btnCancel);
  35. btnOk.onclick = () => {
  36. let login = inputLogin.value;
  37. let password = inputP.value;
  38. if(login && password){
  39. fulfill({login, password})
  40. inputLogin.value = '';
  41. inputP.value = '';
  42. };
  43. }
  44. btnCancel.onclick = () => reject('Error in form data');
  45. })
  46. }
  47. LoginForm().then(res => console.log(res))