vue Promise的使用


一、Promise是什么?

Promise是異步編程的一種解決方案。

二、那什么時候我們會來處理異步事件呢?

1、 一種很常見的場景應該就是網絡請求了。

我們封裝一個網絡請求的函數,因為不能立即拿到結果,所以不能像簡單的3+4=7一樣將結果返回。所以往往我們會傳入另外一個函數,在數據請求成功時,將數據通過傳入的函數回調出去。如果只是一個簡單的網絡請求,那么這種方案不會給我們帶來很大的麻煩。

 

 

三、基本使用

01-Promise的基本使用.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<script>
  // 什么情況下會用到Promise?
  // 一般情況下是有異步操作時,使用Promise對這個異步操作進行封裝
  // new -> 構造函數(1.保存了一些狀態信息  2.執行傳入的函數)
  // 在執行傳入的回調函數時, 會傳入兩個參數, resolve, reject.本身又是函數
  new Promise((resolve, reject) => {
    setTimeout(() => {
      // 成功的時候調用resolve
      // resolve('Hello World')
      // 失敗的時候調用reject
      reject('error message')
    }, 1000)
  }).then((data) => {
    // 1.100行的處理代碼
    console.log(data);
  }).catch((err) => {
    console.log(err);
  })
</script>
</body>
</html>

 

02-Promise的另外處理形式.html

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<script>
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Hello Vuejs')
      //reject('error message')
    }, 1000)
  }).then(data => {
    console.log(data);
  }, err => {
    console.log(err);
  })
</script>
</body>
</html>

 

四、鏈式調用

03-Promise的鏈式調用.html

 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Title</title>
	</head>
	<body>
		<script>
			// 參數 -> 函數(resolve, reject)
			// resolve, reject本身它們又是函數
			// 鏈式編程
			new Promise((resolve, reject) => {
				// 第一次網絡請求的代碼
				setTimeout(() => {
					resolve("hello")
				}, 1000)
			}).then(data => {
				// 第一次拿到結果的處理代碼
				console.log(data);
				return data + '1111';
			}).then(data => {

				// 第二次處理的代碼
				console.log(data);
				return data + '2222'
			}).then(data => {
				// 第三處理的代碼
				console.log(data);

			})
		</script>
	</body>
</html>

 

推薦一個適合零基礎學習SQL的網站: 不用安裝數據庫,在線輕松學習SQL!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM