johnny-dreamguns
10/7/2019 - 9:41 AM

Async Await

function fakeAjax(url, cb) {
	var fake_responses = {
		file1: 'The first text',
		file2: 'The middle text',
		file3: 'The last text'
	};
	var randomDelay = (Math.round(Math.random() * 1e4) % 8000) + 1000;

	console.log('Requesting: ' + url);

	setTimeout(function() {
		cb(fake_responses[url]);
	}, randomDelay);
}

function output(text) {
	console.log(text);
}

const getFile = file => new Promise(resolve => fakeAjax(file, resolve));

const getFiles = async () => {
	var p1 = getFile('file1');
	var p2 = getFile('file2');
	var p3 = getFile('file3');

	output(await p1);
	output(await p2);
	output(await p3);

	output('Completed');
};
getFiles();