Error first callback:

fs.read("/foo.txt",(error, data)=>{
	if(!error) return   //write your error handling code
	console.log(data)
})

example 1 :

async function test(){
	console.log("async func..") //2
	return "233"
}

console.log("started..") //1
test()
console.log("end..") //3

//output :
started..
async func..
end..

Example 2:

async function test() {
	console.log("async func.."); //2
	setTimeout(() => {
		console.log("timer completed.. "); //2
		return 878;
	}, 2000);
}

console.log("started.."); //1
test();
console.log("end.."); //3

//output:
started..
async func..
end..
timer completed..

snippet 1 :

function fetchData(url) {
	return new Promise((resolve, reject) => {
		console.log("starting downloading from url..");
		setTimeout(() => {
			console.log("download completed.. ");
			let response = "Dummy data";
			resolve(response);
		}, 4000);
		});
}

function writeFile(data) {
	return new Promise((resolve, reject) => {
		console.log("starting writing data..", data, "in a file");
		setTimeout(() => {
			let filename = "fileName.txt";
			console.log("file written successfully..");
			resolve(filename);
		}, 10000);
	});
}

function uploadFile(filename, newUrl) {
	return new Promise((resolve, reject) => {
		setTimeout(() => {
			console.log(`file ${filename} uploaded succesful on ${newUrl}`);
			let uploadResponse = "success";
			console.log("upload done..");
			resolve(uploadResponse);
		}, 10000);
	});
}

async function processing() {
	let downloadedData = await fetchData("www.google.com");
	console.log("1");
	let writtenData = await writeFile(downloadedData);
	console.log("2");
	let uploadFile = await writeFile(writtenData, "www.drive.com");
	console.log("3");
}

console.log("started");
processing();
console.log("end");

//output :
started
starting downloading from url..
end
download completed..
1
starting writting data.. Dummy data in a file
file written successfully..
2
starting writting data.. fileName.txt in a file
file written successfully..
3

snippet _ 2 :