1. 程式人生 > >六大原則之一:單一職責原則

六大原則之一:單一職責原則

ret 延遲函數 data resolve image wfq 成功 appdata scn

解決回調地獄的方法:

1.保持代碼的簡潔性

2.模塊化

綜合上述,可使用六大原則之一單一職責原則

例:

        //延遲函數 六大原則
	// var df = $.Deferred();
	// 有三種狀態: done 成功 fail 失敗 progress 正在進行
	// 分別返回三個值:resolve reject notify


	var df = $.Deferred();

	// 註冊成功的回調函數
	df.done(function () {
		console.log(‘yes‘);
	})

	// 註冊失敗的回調函數
	df.fail(function () {
		console.log(‘no‘);
	})

	//註冊正在進行的回調函數
	df.progress(function () {
		console.log(‘waiting‘);
	})



	// 異步
	function createScore() {
		setInterval(function () {
			var time = Math.random() * 100;
			//如果大於60,返回成功
			if (time > 60) {
				df.resolve();
			} else if (time < 50) {
				df.reject(); //返回失敗
			} else {
				df.notify(); //正在進行
			}
		}, 1500)
	}
	createScore();

運行:返回隨機數 技術分享圖片技術分享圖片

怎麽用它呢? 用法如下
     // 異步
	function createScore() {
		var df = $.Deferred(); //在裏面調用它,最後返回一個值
		setInterval(function () {
			var time = Math.random() * 100;
			if (time > 60) {
				df.resolve();
			} else if (time < 50) {
				df.reject();
			} else {
				df.notify();
			}
		}, 1500)
		//返回成功後的值(需要在外面註冊) ps:在這個函數裏面,有可能會返回失敗,因為是隨機數
		return df.promise();
	}

	// 調用返回成功後的值
	var df = createScore();
	// 註冊成功的回調函數
	df.done(function () {
		console.log(‘yes‘);
	})

	// 註冊失敗的回調函數
	df.fail(function () {
		console.log(‘no‘);
	})

	//註冊正在進行的回調函數
	df.progress(function () {
		console.log(‘waiting‘);
	})

運行結果 技術分享圖片技術分享圖片 返回的三個值可以傳傳參,傳多少個都可以 例:
// 異步
	function createScore() {
		var df = $.Deferred(); //在裏面調用它,最後返回一個值
		setInterval(function () {
			var time = Math.random() * 100;
			if (time > 60) {
				df.resolve(‘成功‘);
			} else if (time < 50) {
				df.reject(‘失敗‘);
			} else {
				df.notify(‘等待‘);
			}
		}, 1500)
		//返回成功後的值(需要在外面註冊) ps:在這個函數裏面,有可能會返回失敗,因為是隨機數
		return df.promise();
	}

	// 調用返回成功後的值
	var df = createScore();
	// 註冊成功的回調函數
	df.done(function (ms) {
		console.log(‘yes‘ + ‘ ‘ + ms);
	})

	// 註冊失敗的回調函數
	df.fail(function (ms) {
		console.log(‘no‘ + ‘ ‘ + ms);
	})

	//註冊正在進行的回調函數
	df.progress(function (ms) {
		console.log(‘waiting‘ + ‘ ‘ + ms);
	})



















六大原則之一:單一職責原則