天天看點

javascript async promise return 測試

function downloadData() {
	return new Promise(function (resolve,reject) {
		setTimeout(function () {
			console.log(1)
			reject('1')
		},1000)
	})
}
function downloadFallbackData(){
	return new Promise(function (resolve,reject) {
		setTimeout(function () {
			console.log(2);
			reject('2')
		},1000)
	})
}
function downloadFallbackData2(){
	return new Promise(function (resolve,reject) {
		setTimeout(function () {
			console.log(4);
			reject('4')
		},1000)
	})
}


async function getProcessedData(url) {
	let v;
	try {
		v = await downloadData(url);
	} catch (e) {
		return e;//會傳回到外面的then
		try{
			v = await downloadFallbackData(url);//如果完蛋了,就沒有下面的return 3
		}catch (e){
			v = await downloadFallbackData2(url);
		}


	}
	console.log(3)
	return 3;//上面有resolve才會到這裡
}
getProcessedData().then(function (e) {
	console.log('43',e);
}).catch(function () {
	
})
      

繼續閱讀