POMUSZ

 avatar
unknown
javascript
3 years ago
2.1 kB
6
Indexable
//oczekiwana kolejnosc logow
//onclick
//generateKeys
//listDirectory
//listDirectoryGenerateKeysCallback
//generateValues
//listDirectory
//listDirectoryGenerateValuesCallback
//displayResourceMap

var resourceMap = new Map();

function listDirectoryErrorCallback(path) {
	console.log("Error: " + path);
}

function listDirectoryGenerateKeysCallback(files, path) {
	console.log("listDirectoryGenerateKeysCallback");
	for(var i = 0; i < files.length; i++) {
		resourceMap.set(files[i], []);
	}
}

function listDirectoryGenerateValuesCallback(files, path) {
	console.log("listDirectoryGenerateValuesCallback");
	for(const [key, value] of resourceMap) {
		value.push(...files);
	}
}

function listDirectory(path, successCallback, errorCallback) {
	console.log("listDirectory");
	setTimeout(() => {
		let files =[];
		if(path === "keys") {
			files.push('a');
			files.push('b');
			files.push('c');
		} else {
			for(var i = 0; i < 10; i++) {
				files.push(i.toString());
			}
		}
		
		if(files.length !== 0) {
			successCallback(files, path);
		} else {
			errorCallback(path);
		}
	}, 5 * 1000);
}

function generateKeys() {
	console.log("generateKeys");
	return new Promise((resolve, reject) => {
		try {
			listDirectory("keys", listDirectoryGenerateKeysCallback, listDirectoryErrorCallback);
			resolve("SUCCESS");
		} catch(error) {
			reject("ERROR");
		}
	});
}

function generateValues() {
	console.log("generateValues");
	return new Promise((resolve, reject) => {
		try {
			listDirectory("other", listDirectoryGenerateValues, listDirectoryErrorCallback);
			resolve("SUCCESS");
		} catch(error) {
			reject("ERROR");
		}
	});
}

function displayResourceMap() {
	console.log("displayResourceMap");
	for(const [key, value] of resourceMap) {
		console.log("KEY: " + key + ", VALUES: " + value);
	}
}

let myButton = document.getElementById('myButton');
myButton.onclick = function() {
	console.log("onclick");
	generateKeys()
		.then( () => { generateValues(); })
		.then( () => { displayResourceMap(); });
}
Editor is loading...