async await sleep

This commit is contained in:
Gregor Wüst 2020-05-30 13:23:19 +02:00
parent fefde63871
commit 190076b3b6
3 changed files with 36 additions and 29 deletions

View File

@ -22,10 +22,6 @@ body{
border:1px black solid; border:1px black solid;
} }
#saveProgressDiv{ progress {
display: none;
}
#saveProgress{
width: 312px; width: 312px;
} }

View File

@ -22,8 +22,5 @@
</div> </div>
<div id=allNotesDiv> <div id=allNotesDiv>
</div> </div>
<div id=saveProgressDiv>
<progress id=saveProgress value=0 max=100></progress>
</div>
</body> </body>
</html> </html>

View File

@ -7,21 +7,21 @@ $(document).ready(function(){
$('#allNotesDiv').on('click', 'button', function() { $('#allNotesDiv').on('click', 'button', function() {
console.log("1") console.log("1")
console.log(this) console.log(this)
//$("#saveProgressDiv").toggle(); let buttonId = (this.id).split("saveNoteButton")[1];
//saveNoteObject(this); console.log(buttonId)
createProgressBar(buttonId);
saveNoteObject(buttonId);
}) })
}) })
function randomId(){ let id=0;
return '_' + Math.random().toString(36).substr(2,9);
};
function createForm(){ function createForm(){
let id = randomId()
id++;
let wrapper = document.createElement("div") let wrapper = document.createElement("div")
wrapper.setAttribute('id', id)
let inputsWrapper = document.createElement("div") let inputsWrapper = document.createElement("div")
//let form = document.createElement("form");
inputsWrapper.setAttribute('class', "noteDiv"); inputsWrapper.setAttribute('class', "noteDiv");
let input = document.createElement("input"); let input = document.createElement("input");
@ -58,13 +58,22 @@ function createForm(){
let ctr; let ctr;
function saveNoteObject(a){ function sleep(ms) {
console.log(a) return new Promise(resolve => setTimeout(resolve, ms));
//ctr = setInterval(progressBar, 1000); //simulate delay for saving note }
let noteTitle = document.getElementById('inputTitle').value; async function saveNoteObject(id){
let noteText = document.getElementById('noteText').value;
console.log(id)
await sleep(10000) //sleep simulates the remote server access or similar,
//so instead of sleep would be e.g. saveToRemoteServer()...
//the leftover code of the async function is executed after the delay
let noteTitle = document.getElementById('inputTitle'+id).value;
let noteText = document.getElementById('noteText'+id).value;
let noteObj = { let noteObj = {
idK: id,
title: noteTitle, title: noteTitle,
text: noteText text: noteText
}; };
@ -74,20 +83,25 @@ function saveNoteObject(a){
console.log(noteObj_serialized) console.log(noteObj_serialized)
} }
function progressBar(){ function enableProgressBar(id){
document.getElementById('saveProgress').value = console.log('pBar'+id)
document.getElementById('saveProgress').value + 5; document.getElementById('pBar'+id).value =
if (document.getElementById('saveProgress').value == 100){ document.getElementById('pBar'+id).value + 5;
if (document.getElementById('pBar'+id).value == 100){
clearInterval(ctr); clearInterval(ctr);
} }
} }
function createProgressBar(id){
let progressBar = document.createElement('progress');
let progressBarWrapper = document.createElement('div');
progressBarWrapper.setAttribute('class', 'pBars')
function getNoteObject(){ progressBar.setAttribute('value', '0');
progressBar.setAttribute('max', '100');
progressBar.setAttribute('id', 'pBar'+id);
progressBarWrapper.appendChild(progressBar);
document.getElementById(id).appendChild(progressBarWrapper);
} }