日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定时器和promise_分析 Promise 内部实现

發布時間:2023/12/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定时器和promise_分析 Promise 内部实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在介紹Promise之前,首先我們舉一個栗子,看下面代碼

function success (message) {console.log(message)}function fail (message) {console.log(message)}function readFile (success, fail) {console.log('文件讀取啟動了...')setTimeout(() => {if ((+ new Date()) %2 === 0) {success('success:文件讀取成功了')} else {fail('fail:文件讀取失敗了')}}, 1000)}readFile(success, fail) // 執行 readFile 函數console.log('end...')

輸出結果:

【分析】

  • 這里我們定義了一個 readFile 函數,里面用一個 setTimeout 定時器模擬讀取文件得異步操作
  • 而后定時器里分情況調用 success 或 fail 函數 - 首先我們需要注意得是,在這里如果我們需要啟動定時器,必須執行 readFile() ,同時也必須把回調函數一起傳進去
  • 也就是說,如果 readFile 函數內部已經開始執行得時候 - 如果要有結果,此時必定有 success 和 fail 函數 - 簡單概括的話,就是在有結果輸出的情況下, readFile 函數內部元素壓入調用棧開始執行時, success 和 fail 回調函數 必定存在 --- 即已經定義好了
  • 至于為什么會用這個栗子開頭,請接著往下看....

初識 Promise

舉個栗子,看下面的代碼:

let file = new Promise ((resolve, reject) => {console.log('promise 讀取文件開始了...')setTimeout(() => {if ((+ new Date()) %2 === 0) {resolve('success:文件讀取成功了')} else {reject('fail:文件讀取失敗了')}}, 1000)})setTimeout(() => {// 3秒之后開始傳入回調函數file.then((res) => {console.log(res)}).catch((err) => {console.log(err)})}, 3000)console.log('end...')

輸出結果:

【分析】

  • 在第一行代碼,我們 new 了一個 Promise 對象 - 里面用了一個 1s 定時器 模擬 文件讀取 的異步操作
  • 看輸出結果,第一句輸出的是 Promise 內部的第一行代碼,也就是說,new Promise 對象時,內部已經開始執行了,
  • 1s之后,分情況調用 resolve 或 reject 函數 - 我們注意到,此時我們還沒有傳入回調函數,resolve 和 reject 只是我們 new Promise 時定義的形式參數
  • 3s 后,我們開始傳入回調函數,這時,我們在 3s 后傳入的回調函數執行了并且出現了結果

【思考】

我們回想一開始舉的例子

  • readFile 函數執行的時候,此時回調函數已經定義好了,并且作為參數傳入了 readFile 函數
  • new Promise 的時候,內部已經開始執行,此時我們并未傳入回調函數
  • 3s 之后,我們才傳入回調函數,神奇的是最后有結果輸出
  • 【提示】

    這樣一對比,你是不是發現了什么

  • Promise 一 創建對象 內部開始執行,此時我們沒有傳入回調函數
  • 未來的某段時間里,我們傳入回調函數,回調函數可能會執行并且可以取到結果
  • 【分析總結】

    • 在 Promise 內部,我們 new 的時候傳入的函數應該立即執行
    • 因為在未來的某段時間傳入回調函數可以取到結果,所以 Promise 內部應該有一個變量將 結果 緩存 起來了

    手動實現 Promise

    • 我們通過 new 創建 Promise 對象,所以 Promise 應該是一個函數,同時傳入一個函數作為參數,該函數立即執行
    • Promise 有 3 種狀態:pending、fulfilled、rejected(等待中、已成功、已失敗),并且狀態只能pending -> fulfilled (等待中 -> 已成功)或 pending -> rejected(等待中 -> 已失敗),改變之后狀態不能再次變化
    • 內部有變量存儲 失敗 或 成功 的結果,這里定義為存儲變量為 data
    • 同時 Promise 可以鏈式調用傳入回調函數,因此還存在變量保存回調函數集合,這里定義 保存成功的變量 onResolvedCallback,保存失敗的變量 onRejectedCallback
    let myPromise = (function () {// 定義變量保存狀態的名字const PENDING = 'pending' //初始狀態const FULFILLED = 'fulfilled' // 成功狀態const REJECTED = 'rejected' // 成功function Promise(executor) {this.status = PENDING // 定義變量保存 狀態,初始時為 pendingthis.data = undefined // 定義變量保存 結果this.onResolvedCallback = [] // resolve時的回調函數集合this.onRejectedCallback = [] // reject時的回調函數集合// 考慮到執行executor的過程中有可能出錯,所以我們用try/catch塊給包起來,并且在出錯后以catch捕獲到的值reject掉這個Promisetry {// 因為new Promise對象時傳入一個函數,該函數立即執行executor(resolve, reject) // 執行executor} catch (e) {reject(e)}}return Promise})()let p = new myPromise(function(resolve, reject) {setTimeout(() => {if ((+ new Date()) %2 === 0) {resolve('success:文件讀取成功了')} else {reject('fail:文件讀取失敗了')}}, 1000)})

    輸出結果

    • 因為我們在內部調用了 resolve 和 reject , 這兩個變量在函數內部我們沒有定義,所以出錯。那我們在內部定義的這兩個函數需要處理什么呢?
    • resolve 應該取狀態變為 成功 的 結果,reject 應該取狀態變為 失敗 的結果。

    繼續完善代碼

    let myPromise = (function () {// 定義變量保存狀態的名字const PENDING = 'pending' //初始狀態const FULFILLED = 'fulfilled' // 成功狀態const REJECTED = 'rejected' // 成功function Promise(executor) {this.status = PENDING // 定義變量保存 狀態,初始時為 pendingthis.data = undefined // 定義變量保存 結果this.onResolvedCallback = [] // resolve時的回調函數集合this.onRejectedCallback = [] // reject時的回調函數集合function resolve(result) { if (this.status === PENDING) { // 狀態只能是 pending, 才可以執行下面的代碼this.status = FULFILLED // 因為調用 resolve,所以是成功的,所以狀態變為 fulfilledthis.data = result // 保存 成功 的結果// 開始給 誰想要當前 成功的 結果,就執行他們的函數,并且將 成功 的結果傳給他們this.onResolvedCallback.forEach(cb => cb(this.data))}}function reject(reason) {// 同上if (this.status === PENDING) {this.status = REJECTEDthis.data = reasonthis.onRejectedCallback.forEach(cb => cb(this.data))}}// 考慮到執行executor的過程中有可能出錯,所以我們用try/catch塊給包起來,并且在出錯后以catch捕獲到的值reject掉這個Promisetry {// 因為new Promise對象時傳入一個函數,該函數立即執行executor(resolve, reject) // 執行executor} catch (e) {reject(e)}}return Promise})()let p = new myPromise(function (resolve, reject) {setTimeout(() => {if ((+ new Date()) % 2 === 0) {resolve('success:文件讀取成功了')} else {reject('fail:文件讀取失敗了')}}, 1000)})

    到這一步,我們剛才分析的內容大部分完成了 如果我們 MDN 上搜索 Promise

    MDN上Promise介紹
    • 我們發現 then、catch、finally 是 Promise 類的實例方法
    • all、race、reject 、resolve 是 Promise 類的靜態方法
    • 所以我們根據分析,可以得出如下的 結構
    Promise.prototype.then = function() {} Promise.prototype.catch = function() {} Promise.all = function() {} Promise.race = function() {} Promise.reject = function() {} Promise.resolve = function() {}

    Promise.then 方法實現

    • Promise.then 接受兩個參數,一個為 成功狀態 的回調函數,一個為 失敗狀態 的回調函數
    • 同時我們可以不傳回調函數,這時直接取 上一個處理的結果,不做處理,直接傳遞到 下一個

    講解

    • 首先,then 可以鏈式調用,所以每次都需要返回一個 Promise 對象
    Promise.prototype.then = function (onFulfilled, onRejected) {return new Promise(function (resolve, reject) {}}
    • 我們通過前面的分析,已經知道 then 里面的回調函數可以 在不同時間段給出,此時,當前這個 promise 可能出現 3 種狀態 (等待中、已成功、已失敗),所以分 3 種情況 處理
    Promise.prototype.then = function (onFulfilled, onRejected) {return new Promise(function (resolve, reject) {if (self.status == FULFILLED) { // 已成功}if (self.status == REJECTED) { // 已失敗}if (self.status === PENDING) { // 等待中}})}
    • 接下來我們分析,在這 3 種情況下應該做什么

    已成功

    • 因為 狀態已經變成了 已成功,所以存儲了 成功的結果,我們將 成功的結果 作為參數傳遞給 onFulfilled 回調函數并執行
    • 因為 返回的 promise 的狀態由 onFulfilled 回調函數執行的結果決定
    • 所以我們開始分析 onFulfilled 可能有什么樣的結果
  • 如果拋出異常,return 的 Promise 就會失敗,結果 就是 error
  • 如果回調函數返回不是 Promise,return 的 Promise 就會成功,value 就是返回的值
  • 如果回調函數返回是 Promise,return 的 Promise 結果就是這個 Promise 的結果
    • 上面 3 種 結果是什么意思呢?我們以下面的栗子來說明
    var p1 = new Promise()// 1. 如果拋出異常,return 的 Promise 就會失敗,結果 就是 error p1.then(() => { // 就是有人會這么直接拋出異常,所以 p1 return 的 Promise 狀態應該是 已失敗throw 233 })// 2. 如果回調函數返回不是 Promise,return 的 Promise 就會成功,value 就是返回的值 p1.then(() => { // 直接 return 一個 值,因為沒有拋出異常,所以不是 已失敗狀態,同時 因為有了結果,所以不是 等待中,最后return 的 Promise 只能是 已成功 狀態,return 1433 }) // 3. 如果回調函數返回是 Promise,return 的 Promise 結果就是這個 Promise 的結果 p1.then(() => { // 因為 返回 了 一個 Promise,所以當前狀態無法確定,只能通過 返回的 這個 Promise 的最后狀態來確定return new Promise(() => {}) })
    • 根據 分析,我們初步實現 已成功 的 內容,因為要用到 Promise 的 存儲的結果 data,所以我們定義一個變量self= this
    Promise.prototype.then = function (onFulfilled, onRejected) { let self = thisreturn new Promise(function (resolve, reject) {if (self.status == FULFILLED) {// 已成功setTimeout(() => {try {// 獲取 回調函數執行的結果var _result = onFulfilled(self.data)if (_result instanceof Promise) {// 3. 如果回調函數返回是 Promise,return 的 Promise 結果就是這個 Promise 的結果_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {// 2. 如果回調函數返回不是 Promise,return 的 Promise 就會成功,value 就是返回的值resolve(_result)}} catch (e) {// 1. 如果拋出異常,return 的 Promise 就會失敗,結果 就是 errorreject(e)}})}if (self.status == REJECTED) {// 已失敗}if (self.status === PENDING) {// 等待中}})}

    問題:為什么 then回調函數必須設置為 setTimeout 的回調?

    setTimeout(() => { // 保證返回的 Promise 是異步try {var _result = onFulfilled(self.data)if (_result instanceof Promise) {_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}})
    • 保證返回的 Promise 是異步
    • (這個部分,下次更新)

    已失敗

    • 分析的思路和結果與上面的差不多,不做過多分析
    • 需要注意的是此時的 _result = onRejected(self.data) ,調用失敗的回調函數

    等待中

    • 因為當前 Promise 的狀態是 進行中, 所以我們無法得知最后的狀態是
    • 我們得等到 Promise 的 最后狀態確定了 ,才能 知道 是調用 onFulfilled 還是 onRejected
    • 這時候我們通過發布訂閱模式,將當前傳入的回調函數都保存起來,等到有了結果再進行通知,并把最后狀態的結果傳給回調函數
    Promise.prototype.then = function (onFulfilled, onRejected) {let self = thisreturn new Promise(function (resolve, reject) {if (self.status == FULFILLED) {// 已成功setTimeout(() => {try {// 獲取 回調函數執行的結果var _result = onFulfilled(self.data)if (_result instanceof Promise) {// 3. 如果回調函數返回是 Promise,return 的 Promise 結果就是這個 Promise 的結果_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {// 2. 如果回調函數返回不是 Promise,return 的 Promise 就會成功,value 就是返回的值resolve(_result)}} catch (e) {// 1. 如果拋出異常,return 的 Promise 就會失敗,結果 就是 errorreject(e)}})}if (self.status == REJECTED) { // 已失敗setTimeout(() => {try {var _result = onRejected(self.data)if (_result instanceof Promise) {_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}})}if (self.status === PENDING) { // 等待中self.onResolvedCallback.push(function () {setTimeout(() => {try {var _result = onFulfilled(self.data)if (_result instanceof Promise) {_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}})})self.onRejectedCallback.push(function () {setTimeout(() => {try {var _result = onRejected(self.data)if (_result instanceof Promise) {_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}})})}})}
    • 我們發現有 四個 地方的內容我們重復寫了 四遍,所以提取出來就變成了
    Promise.prototype.then = function (onFulfilled, onRejected) {let self = thisreturn new Promise(function (resolve, reject) {// 根據指定回調函數處理,根據執行結果,改變 return 的 promise 的狀態function handle(callback) {try {var _result = callback(self.data)if (_result instanceof Promise) {_result.then(res => {resolve(res)}, err => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}}if (self.status == FULFILLED) {setTimeout(() => {handle(onFulfilled)})}if (self.status == REJECTED) {// 如果當前是 resolved 狀態,異步執行 onRejected 并改變 return 的 promise 狀態setTimeout(() => {handle(onRejected)})}if (self.status === PENDING) {self.onResolvedCallback.push(function () {setTimeout(() => {handle(onFulfilled)})})self.onRejectedCallback.push(function () {setTimeout(() => {handle(onRejected)})})}})}

    透傳

    • 由于我們調用 .then 方法時,可以一個回調函數都不傳,此時應當不對最后狀態的結果進行處理,直接傳遞到下一個 Promise
    • 請始終記得,只要沒有手動對狀態確定的 Promise 的結果進行 過處理,Promise 的狀態就不會再改變
    Promise.prototype.then = function (onFulfilled, onRejected) {onFulfilled = typeof onFulfilled == 'function' ? onFulfilled : (value) => valueonRejected = typeof onRejected == 'function' ? onRejected : (reason) => { throw reason }let self = thisreturn new Promise(function (resolve, reject) {// 根據指定回調函數處理,根據執行結果,改變 return 的 promise 的狀態function handle(callback) {try {var _result = callback(self.data)if (_result instanceof Promise) {_result.then(res => {resolve(res)}, err => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}}if (self.status == FULFILLED) {setTimeout(() => {handle(onFulfilled)})}if (self.status == REJECTED) {// 如果當前是 resolved 狀態,異步執行 onRejected 并改變 return 的 promise 狀態setTimeout(() => {handle(onRejected)})}if (self.status === PENDING) {self.onResolvedCallback.push(function () {setTimeout(() => {handle(onFulfilled)})})self.onRejectedCallback.push(function () {setTimeout(() => {handle(onRejected)})})}})}
    • 通過以上分析,我們已經實現了 .then 方法

    Promise.catch 方法實現

    • catch 方法,傳入一個失敗的回調函數,因為需要獲取 失敗的結果,所以我們直接調用當前 Promise 的 then 方法來獲取 失敗的結果
    • 同時調用了 .catch 之后,還是返回一個 Promise 對象,并且 下一個 Promise 的狀態由 .catch 的回調函數 返回值確定
    • 在這里人們會存在的一個誤解是:調用 .catch 之后,以后的 Promise 狀態都是 已失敗,這是錯誤的
    • 你需要時刻記得的是:只要你沒有用回調函數處理過 已失敗 的結果,之后的 Promise 狀態就是 已失敗,只要你 用回調函數處理了 已失敗的結果,之后的 Promise 狀態就根據你 回調函數的 結果來 確定。
    Promise.prototype.catch = function (onRejected) {return this.then(undefined, onRejected)}

    Promise.all 方法實現

    • Promise.all 方法傳入一個數組,當數組中有一個 結果是 已失敗 時,最后結果就是 已失敗,只有當數組中的 所有 結果都是 成功時,該方法才會被確定為 已成功 的狀態
    • 已成功 的 結果是一個數組
    • 需要注意的是,已成功 的 結果數組,和 Promise.all 傳入的數組是相對應得
    • 也就是說,傳入的第 2 個 是 已成功 數組 的 第 2 個 結果
    • 這里我們可以借鑒 我們常遇到的 保證多個ajax 請求都返回了結果 的解決 辦法。
    • 我們通過一個變量(successNum)來保存 已成功 的數量,如果最后該變量的值 和 傳入的數組 長度 一樣,那就說明 傳入的 數組 所有結果都是 已成功
    • 遇到 一個執行結果是 已失敗,直接返回 已失敗 的狀態

    【分析】傳入的數組可能的情況

    • [1, '233', new Promise()]
    • 一是 字符串或數字
    • 二是 Promise 對象
    Promise.all = function (promises) {let len = promises.lengthlet successNum = 0let _result = []return new Promise((resolve, reject) => {promises.forEach((p, i) => {try {// 針對 Promise 對象if (p instanceof Promise) {p.then((res) => {successNum++_result[i] = resif (successNum === len) {resolve(_result)}},(err) => {reject(err)})} else {// 非 Promise 對象successNum++_result[i] = pif (successNum === len) {resolve(_result)}}} catch (err) {reject(err)}})}) }

    Promise.race 方法實現

    • Promise.race , 傳入的是一個數組,誰先有結果,返回的 Promise 的狀態就是該結果的 狀態
    • 該方法和 Promise.all 相比,不需要變量 保存 誰已經執行了,只需要遇到哪個執行完成了,直接返回和其結果一樣的狀態
    Promise.race = function (promises) {return new Promise((resolve, reject) => {promises.forEach((p, i) => {try {if (p instanceof Promise) {p.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(p)}} catch (err) {reject(err)}})}) }

    Promise.reject 方法實現

    • 該方法返回一個 已失敗 狀態 的 Promise
    • 直接通過新建一個 Promise 對象,只傳入第二個參數,返回一個 已失敗 的 Promise
    Promise.reject = function (rejected) {return new Promise((undefined, reject) => {reject(rejected)}) }

    Promise.resolve 方法實現

    • 該方法返回一個 已成功 狀態的 Promise
    • 我們同樣通過直接返回一個 Promise 對象來 獲取 返回成功的 狀態
    • 這里需要注意的是:因為是返回 一個 已成功 的狀態,但是我們并不能保證 用戶傳入的 結果最后就是 已成功 的狀態
    • 該方法和 Promise.reject 不同
    • 用戶如果傳入了一個 Promise 對象 作為參數,那我們應該 取 傳入的參數結果和狀態作為 當前 Promise 最后返回的結果和狀態
    Promise.resolve = function (result) {return new Promise((resolve, reject) => {try {// 如果傳入的是一個 Promise 類型的變量,取它的狀態和結果作為 Promise.resolve 的狀態和結果if (result instanceof Promise) {result.then((res) => {resolve(res)},(err) => {reject(err)})}resolve(result)} catch (e) {reject(e)}}) }

    結果

    • 發一個最終版和測試用例
    const _Promise = (function () {const PENDING = 'pending' //初始狀態const FULFILLED = 'fulfilled' // 成功狀態const REJECTED = 'rejected' // 失敗狀態function Promise(executor) {var self = thisself.status = PENDINGself.data = undefinedself.onResolvedCallback = []self.onRejectedCallback = []function resolve(result) {if (self.status === PENDING) {self.status = FULFILLEDself.data = resultself.onResolvedCallback.forEach((cb) => cb(self.data))}}function reject(reason) {if (self.status === PENDING) {self.status = REJECTEDself.data = reasonself.onRejectedCallback.forEach((cb) => cb(self.data))}}try {executor(resolve, reject)} catch (e) {reject(e)}}Promise.prototype.then = function (onFulfilled, onRejected) {onFulfilled =typeof onFulfilled == 'function' ? onFulfilled : (value) => valueonRejected =typeof onRejected == 'function'? onRejected: (reason) => {throw reason}let self = thisreturn new Promise(function (resolve, reject) {// 根據指定回調函數處理,根據執行結果,改變 return 的 promise 的狀態function handle(callback) {try {var _result = callback(self.data)if (_result instanceof Promise) {_result.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(_result)}} catch (e) {reject(e)}}if (self.status == FULFILLED) {setTimeout(() => {handle(onFulfilled)})}if (self.status == REJECTED) {// 如果當前是 resolved 狀態,異步執行 onRejected 并改變 return 的 promise 狀態setTimeout(() => {handle(onRejected)})}if (self.status === PENDING) {self.onResolvedCallback.push(function () {setTimeout(() => {handle(onFulfilled)})})self.onRejectedCallback.push(function () {setTimeout(() => {handle(onRejected)})})}})}Promise.prototype.catch = function (onRejected) {return this.then(undefined, onRejected)}Promise.all = function (promises) {let len = promises.lengthlet successNum = 0let _result = []return new Promise((resolve, reject) => {promises.forEach((p, i) => {try {if (p instanceof Promise) {p.then((res) => {successNum++_result[i] = resif (successNum === len) {resolve(_result)}},(err) => {reject(err)})} else {successNum++_result[i] = pif (successNum === len) {resolve(_result)}}} catch (err) {reject(err)}})})}Promise.race = function (promises) {return new Promise((resolve, reject) => {promises.forEach((p, i) => {try {if (p instanceof Promise) {p.then((res) => {resolve(res)},(err) => {reject(err)})} else {resolve(p)}} catch (err) {reject(err)}})})}Promise.reject = function (rejected) {return new Promise((undefined, reject) => {reject(rejected)})}Promise.resolve = function (result) {return new Promise((resolve, reject) => {try {if (result instanceof Promise) {result.then((res) => {resolve(res)},(err) => {reject(err)})}resolve(result)} catch (e) {reject(e)}})}return Promise})()let p1 = new _Promise((resolve, reject) => {setTimeout(() => {resolve('p1 ---> resolve')}, 1000)})let p2 = new _Promise((resolve, reject) => {setTimeout(() => {resolve('p2 ---> resolve')}, 500)})let p3 = new _Promise((resolve, reject) => {setTimeout(() => {reject('p3 ---> reject')}, 1500)})_Promise.all([p1, p2, 120, 'hello', p3]).then((res) => {console.log('resolve', res)}).then(() => {},(err) => {console.log('err', err)throw ''}).then((res) => {console.log('res', res)},(err) => {console.log('err', err)})

    【輸出結果】

    err p3 ---> reject err

    總結

    以上是生活随笔為你收集整理的定时器和promise_分析 Promise 内部实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久精品成人欧美大片古装 | 日韩最新理论电影 | 在线国产一区二区 | 久草视频在线免费 | 中文字幕第一页av | 免费看日韩片 | 亚洲精品在线观看av | 亚洲国产日韩欧美在线 | 日日精品| 免费的国产精品 | 一区二区三区免费在线观看 | 精品视频国产一区 | 欧美激情精品 | 最近2019年日本中文免费字幕 | 九九导航 | 玖玖999| 97人人看 | 免费色黄 | 99精品免费久久久久久日本 | 国产美女主播精品一区二区三区 | 精品国产成人 | 免费成人黄色av | 国产精品久久久久毛片大屁完整版 | 久久不射电影网 | 人人爽人人澡人人添人人人人 | 激情电影影院 | 欧美国产亚洲精品久久久8v | 国产自产在线视频 | 亚洲一区欧美激情 | 91av短视频| 久久怡红院 | 天天看天天干天天操 | 欧美日本啪啪无遮挡网站 | 亚洲精品成人网 | 91成人短视频在线观看 | 国产精品久久99综合免费观看尤物 | 在线91观看 | 三日本三级少妇三级99 | 日韩理论片中文字幕 | 亚洲欧洲精品一区二区 | 亚洲成人午夜在线 | 国产精品久久一区二区无卡 | 九九精品视频在线看 | 夜夜爽夜夜操 | 免费av片在线 | 亚洲精品中文在线资源 | 免费视频一二三 | 激情久久久久 | 九九久久精品 | 国产精品久久久视频 | 久久精品99精品国产香蕉 | 麻豆国产露脸在线观看 | 天天插天天射 | 亚洲va男人天堂 | 国产精品永久免费观看 | 久久久久久久久久久久久影院 | 亚洲六月丁香色婷婷综合久久 | 乱子伦av| 四虎永久视频 | 国产精品乱码久久久久久1区2区 | 97色综合 | 91资源在线 | 国产一区在线免费观看 | 成人羞羞视频在线观看免费 | 最近中文字幕在线 | 日韩高清无线码2023 | 中文字幕在线观看不卡 | 精品在线观 | 免费看片成年人 | v片在线播放| 国产成人精品一区二区三区福利 | 亚洲国产wwwccc36天堂 | 青草视频在线看 | 国产精品一区二区视频 | 久久有精品 | 91精品视频免费观看 | 欧美日韩中 | 天天色综合天天 | 成人av影视 | 国产精品免费久久久久久久久久中文 | 在线观看av不卡 | 亚洲精品乱码久久久久久按摩 | 亚洲午夜精品久久久久久久久 | 在线91播放| 久久乱码卡一卡2卡三卡四 五月婷婷久 | 手机看国产毛片 | 在线探花 | 日日夜夜91 | 在线观看免费高清视频大全追剧 | 国产高清在线不卡 | 欧美激情第一页xxx 午夜性福利 | 国产99久久久国产精品成人免费 | 日韩欧美精选 | 成人免费大片黄在线播放 | 中国黄色一级大片 | 91理论电影| 久久久久久久国产精品视频 | 婷婷色婷婷| 欧美性生活免费 | 中文字幕在线播放av | 福利一区二区三区四区 | 在线不卡的av | 国产视频久久 | 日韩亚洲在线 | 久久爱导航| 国产精品久久久久久av | 国产视频一区二区三区在线 | 天天爽夜夜爽人人爽一区二区 | 国产亚洲精品成人av久久影院 | 色婷婷综合视频在线观看 | 久久激情网站 | 91av在线播放视频 | 91污在线 | 欧美激情视频免费看 | 男女啪啪视屏 | 久久久久区 | 欧美另类视频 | 亚洲狠狠操 | 91亚洲狠狠婷婷综合久久久 | 亚洲人成免费网站 | 91久久人澡人人添人人爽欧美 | 人人爽人人爽人人 | 国产精品免费久久久久 | 2023av在线 | 国产一级黄色av | www毛片com| 国产一二三四在线视频 | 久草在线这里只有精品 | 最新av在线网站 | 亚洲电影影音先锋 | 国产99re| 99热9| 精品在线观看免费 | 91中文字幕在线观看 | 五月婷婷在线综合 | 日日夜夜精品免费观看 | 久久久久国产成人精品亚洲午夜 | 啪啪免费试看 | 国产一级免费av | 亚洲日本一区二区在线 | 国内少妇自拍视频一区 | 在线观看免费成人 | 日韩在线视频看看 | 国产中的精品av小宝探花 | 五月香视频在线观看 | 国内精品视频久久 | a色视频| 亚洲人成在线观看 | 国产99自拍| 国产剧情一区二区在线观看 | se视频网址 | 成人看片 | 国产精品福利久久久 | 久草视频看看 | 手机看片1042| 伊人婷婷久久 | 婷婷综合av| 国产免费一区二区三区网站免费 | 在线观看黄污 | 在线免费观看国产视频 | 日韩黄色在线电影 | 久久激情婷婷 | 波多野结衣精品 | 免费观看的黄色片 | 91大神免费视频 | 国产成人一区二区三区影院在线 | 久久高清国产视频 | 最新国产精品视频 | av播放在线 | 日韩毛片在线一区二区毛片 | 成片免费观看视频999 | 免费黄色a网站 | 激情综合五月 | 久久精品站 | 黄色三级网站 | 99精品久久久久久久久久综合 | 夜夜操综合网 | 久久精品国产亚洲aⅴ | 国产人成一区二区三区影院 | 亚洲91精品| 在线观看中文字幕一区 | 91视频在线免费 | 久久久黄色免费网站 | 免费观看成人网 | 国产在线高清精品 | 国产精品一区在线 | 黄a网| 亚洲黄在线观看 | 国产在线传媒 | 国产色久 | 亚洲另类视频 | 天天操天天摸天天干 | 亚洲高清在线 | 国产一级h | 午夜男人影院 | 国产美女精品人人做人人爽 | 亚洲精品a区| 激情电影影院 | 男女拍拍免费视频 | 国内精品久久天天躁人人爽 | 免费看片亚洲 | 久久草网 | 精品女同一区二区三区在线观看 | 久久国产剧场电影 | 国产剧情一区在线 | 国产美女在线精品免费观看 | 九九九九精品九九九九 | 国产视频一区在线免费观看 | 欧美黄色软件 | 久久国产精品99久久久久久丝袜 | 国产视频精选在线 | 亚洲性视频 | 日韩一区二区三区免费视频 | 五月激情在线 | 99热这里只有精品在线观看 | 欧美成人精品三级在线观看播放 | 日本中文字幕视频 | 99在线热播精品免费99热 | 欧美日韩91| 超级碰99| 在线亚洲人成电影网站色www | 91色影院| 成人啊 v | 91视频 - 88av | www.在线观看av| 婷婷丁香激情综合 | 狠狠gao| 午夜久久影院 | 国产精品视频app | 欧美大片大全 | 91尤物在线播放 | 91高清免费在线观看 | 深夜免费小视频 | 日韩av图片 | 国产一卡二卡在线 | 黄色网在线免费观看 | 亚洲二区精品 | 91桃色在线观看视频 | 天天做天天爱夜夜爽 | www.天天色.com | 黄色成年网站 | 久草在线视频在线 | 国产99一区视频免费 | 免费在线观看av | 九九九在线观看 | 久久精品播放 | 久久综合福利 | 久草视频在线免费播放 | 天天色天天射天天干 | 精品毛片在线 | 在线观看一区视频 | 国产中的精品av小宝探花 | 亚洲黄色软件 | 欧美热久久 | 91麻豆视频 | 91精品国产91久久久久 | 国产精品国产亚洲精品看不卡15 | 99精品国产99久久久久久97 | 91在线视频免费 | 免费在线国产精品 | 精品麻豆入口免费 | 欧美精品一二 | 国产精品第三页 | 国产一区免费观看 | av中文字幕在线播放 | 91刺激视频 | 国产永久免费 | 免费av大全 | 日韩视频中文 | 国产一区二区精品久久 | 国产又粗又猛又色又黄网站 | 超碰在线亚洲 | 超碰97人人干 | 久草在线视频网 | 搡bbbb搡bbb视频| 国产麻豆果冻传媒在线观看 | 亚洲一区不卡视频 | 久久综合久久88 | 免费观看性生交大片3 | 日本久草电影 | 欧美韩日在线 | 日韩电影一区二区在线观看 | 国产资源中文字幕 | av不卡在线看 | 午夜国产一区二区三区四区 | 五月天电影免费在线观看一区 | 99精品国产在热久久 | 成人黄性视频 | 亚洲激情在线观看 | 中文字幕精品www乱入免费视频 | 国产糖心vlog在线观看 | 久久综合给合久久狠狠色 | 欧洲精品久久久久毛片完整版 | 五月婷网| 成人黄色小视频 | 日韩丝袜在线观看 | 丁香电影小说免费视频观看 | 日韩精品字幕 | av电影免费在线播放 | 免费麻豆视频 | 免费在线观看亚洲视频 | 国产午夜免费视频 | 日本精品久久 | 天堂在线一区 | 日韩一区正在播放 | 天天撸夜夜操 | 黄色毛片视频免费 | 久久99精品国产麻豆婷婷 | 日日草天天草 | 日韩欧美精品一区二区 | 欧美午夜久久久 | 成年人app网址 | 亚洲闷骚少妇在线观看网站 | 狠狠狠色丁香婷婷综合久久五月 | 欧美日本在线视频 | 久久99久久99精品中文字幕 | 日韩av一区二区三区 | 天天干夜夜夜操天 | 久久久久久久久久久久久久电影 | 免费一级片在线观看 | 成人一级影视 | 九九爱免费视频在线观看 | 中文字幕麻豆 | 天天插天天爽 | 国产精品女人久久久久久 | 欧美精品久久久久久久久免 | 在线一区二区三区 | 国产精品久久久久久久久久不蜜月 | 狠狠狠狠狠狠狠狠干 | 国产精品手机在线播放 | 日韩色爱 | 精品国产人成亚洲区 | 天天操夜夜操夜夜操 | av免费试看 | 天天爱天天操 | 久久久久久久av麻豆果冻 | 青草视频在线播放 | 久久亚洲私人国产精品 | 国产精品原创视频 | 午夜精品一区二区三区在线播放 | 国产精品毛片一区视频播不卡 | 久久999久久 | 久久成人毛片 | 十八岁以下禁止观看的1000个网站 | 日韩黄色免费 | 日韩视频免费在线观看 | 狠狠色2019综合网 | 日韩美精品视频 | 中文字幕在线视频网站 | 在线色亚洲 | 一区二区三区影院 | 在线观看黄a | 狠狠狠狠狠色综合 | 中文字幕一区三区 | 久久久国产精品人人片99精片欧美一 | 欧美影片 | 激情深爱| 日日夜夜精品免费观看 | 色五婷婷 | 国产亚洲一区二区在线观看 | 伊人天天干 | 久久91久久久久麻豆精品 | 精品黄色片 | 亚洲视频第一页 | 天天色综合三 | 伊人手机在线 | 狠狠综合久久 | 久久精品免费观看 | 韩日av一区二区 | 狠狠狠狠狠狠狠干 | 精品国产91亚洲一区二区三区www | 国产精品美女久久久久久网站 | 在线香蕉视频 | 蜜桃av观看| 国产麻豆视频在线观看 | 91视频免费观看 | 亚洲成人免费在线观看 | 日日躁夜夜躁xxxxaaaa | 99久久精品免费看国产麻豆 | 国产r级在线观看 | 精品亚洲午夜久久久久91 | 69xxxx欧美 | 99热这里精品 | 中文字幕免费久久 | 丁香亚洲| 在线观看免费av网站 | 一区二区不卡在线观看 | 国产精品一级视频 | 狠狠狠色| 深爱激情五月网 | 国产最新精品视频 | 国产在线观看一区 | 久久伊人爱| 最近中文字幕大全 | 狠狠狠色狠狠色综合 | 日本在线观看中文字幕无线观看 | 国产中文字幕在线免费观看 | 91精品国产99久久久久久红楼 | 一区二区免费不卡在线 | 国产中文字幕在线视频 | 欧美精品久久久久久久久久白贞 | 婷婷激情5月天 | 97超碰在线久草超碰在线观看 | 国产一级三级 | 成人9ⅰ免费影视网站 | 亚洲欧洲久久久 | 亚洲欧美日韩国产精品一区午夜 | 久久综合狠狠综合 | 国产精品va在线观看入 | 人人爱夜夜操 | 亚洲激情 欧美激情 | 日韩av片无码一区二区不卡电影 | 91久久国产自产拍夜夜嗨 | 国产精品久久久久四虎 | 国产黄色免费 | 成人资源在线播放 | 中文字幕在线观看日本 | 欧美日韩在线视频一区二区 | 中文字幕在线免费观看视频 | www.伊人网| 97超碰在线人人 | 最新国产福利 | 久久高清免费视频 | 婷婷精品国产一区二区三区日韩 | 在线成人观看 | 一区二区三区中文字幕在线观看 | 久草在线视频中文 | 国产精品久久久久久婷婷天堂 | 国产精品a成v人在线播放 | 日日夜夜免费精品 | 91精品国产91久久久久久三级 | 黄色片视频免费 | 国产中文字幕视频在线 | 岛国av在线免费 | 免费黄a大片 | 美女免费视频一区二区 | 特级西西www44高清大胆图片 | 中文字幕综合在线 | 亚洲最新av网址 | 麻豆国产精品一区二区三区 | 国产精品久久久久久一区二区三区 | 久久色中文字幕 | 久久综合加勒比 | 天天操 夜夜操 | 在线观看国产一区二区 | av福利网址导航 | 91最新网址 | 久久久久一区二区三区 | 久久99亚洲网美利坚合众国 | 福利电影久久 | 日韩精品国产一区 | 青青草国产精品视频 | 色.www | 人人看人人草 | 丁香花在线视频观看免费 | 三级黄在线 | 娇妻呻吟一区二区三区 | 欧美精品色 | 欧美亚洲成人xxx | 成年人黄色免费网站 | 亚洲天堂网在线视频观看 | 久久久综合香蕉尹人综合网 | 精品国模一区二区三区 | 一区二区三区影院 | 久操97| 日韩亚洲国产中文字幕 | 亚洲国产成人在线播放 | 国产精品免费看 | 亚洲人人av | 黄色电影网站在线观看 | 99精品免费网 | 亚洲精品国产麻豆 | www免费视频com━ | 国产91在线播放 | 亚洲电影久久久 | 久久亚洲私人国产精品 | av黄色在线播放 | 玖玖玖在线 | 亚洲高清视频在线 | 国产精品一区二区果冻传媒 | 激情视频在线观看网址 | 久久久91精品国产一区二区三区 | 婷婷综合久久 | 欧美一区二区在线刺激视频 | 一区二区三区免费在线观看视频 | 97碰碰精品嫩模在线播放 | 免费在线播放 | 日韩精品中文字幕av | 亚洲黄色大片 | 麻豆91网站| 免费观看性生交大片3 | 热久久免费国产视频 | 日韩黄色中文字幕 | 在线观看岛国av | 六月丁香激情综合 | 国内精品久久久精品电影院 | 在线观看日韩精品 | 91成人破解版 | 福利视频一二区 | 人人爱人人做人人爽 | 国产精品欧美 | 亚洲精品视频在线 | 午夜精品久久久久久99热明星 | 色在线中文字幕 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 中文区中文字幕免费看 | 日韩在线观看网站 | 日本不卡123 | 亚洲一级片在线看 | 国产又粗又长的视频 | 亚洲区另类春色综合小说 | 国产一级精品在线观看 | 久久免费视频国产 | 精品日本视频 | 91最新网址 | 成年人视频在线观看免费 | 免费大片av| 奇米先锋 | 亚洲综合一区二区精品导航 | 一区二区三区国产欧美 | 91视频这里只有精品 | 国产成人一区二区三区在线观看 | 国产伦理久久精品久久久久_ | 2017狠狠干| 国产精品成人国产乱 | 中文字幕人成不卡一区 | 草久久影院 | 91资源在线 | 91香蕉视频在线下载 | 久久久久久网 | 欧美久久久久 | 中文字幕久久精品 | 久久久电影 | 中文字幕乱码亚洲精品一区 | free. 性欧美.com| 在线免费观看黄色大片 | 国内精品久久久久久久 | 一区二区三区四区五区在线 | 国产精品久久久免费看 | 夜夜骑日日 | 国产永久免费 | 色橹橹欧美在线观看视频高清 | 97精品国产一二三产区 | 欧美精品久久久久久久久免 | 成人av片在线观看 | 在线观看亚洲国产 | 成年人国产精品 | 久久成人资源 | 欧美日韩免费观看一区=区三区 | 91av免费在线观看 | 2021国产视频 | 又长又大又黑又粗欧美 | 久久精品在线视频 | 精品久久久精品 | 欧美色操 | 狠狠干中文字幕 | 超碰99在线 | 色综合天天综合网国产成人网 | 久久不卡免费视频 | 免费视频91蜜桃 | 亚洲一级电影 | 国产在线理论片 | 一区二区三区中文字幕在线 | 久久99精品久久久久久清纯直播 | 久草在线欧美 | 久久99精品国产麻豆婷婷 | 日韩免费一区二区在线观看 | 亚洲成人高清在线 | 我要色综合天天 | 99欧美 | 国产精品免费久久久久 | 在线播放 日韩专区 | 9在线观看免费高清完整版 玖玖爱免费视频 | 91麻豆国产福利在线观看 | 亚洲3级| 久久公开视频 | 人人爽人人爽人人片av | 久久涩涩网站 | 天堂麻豆 | 日韩免费播放 | 一区二区三区在线观看 | 日韩v在线91成人自拍 | 一区二区久久 | 97av色 | 中文不卡视频在线 | 欧美做受69 | 69视频在线 | 免费日韩一区 | 婷婷综合视频 | 欧美精品久久久久久久 | 国产二区av| 免费看黄的 | 久久久999精品视频 国产美女免费观看 | 欧美午夜精品久久久久久浪潮 | 国产精品免费久久久久影院仙踪林 | 国产福利免费在线观看 | 精品黄色片 | 最近中文字幕mv | 亚洲成人精品在线观看 | 国产精品久久久久9999吃药 | 精品视频免费观看 | 中文久久精品 | 一区二区视频电影在线观看 | 亚洲一区天堂 | 欧美成人猛片 | 丁香五月缴情综合网 | 天天综合网在线观看 | 久久亚洲影视 | 欧美一级片免费在线观看 | 91亚洲成人 | 中文字幕精品一区 | 日韩免费av网址 | av在线播放网址 | bbb搡bbb爽爽爽 | 黄色一及电影 | 色伊人网 | 麻豆国产精品永久免费视频 | 91丨九色丨高潮丰满 | 日韩av影片在线观看 | 免费看黄的 | 国产一级淫片免费看 | 中文字幕电影网 | www.夜夜干.com | 色婷婷一区| 99久久日韩精品免费热麻豆美女 | 91av资源网| 国产精品永久免费 | 美女网站视频色 | 婷婷久久久久 | 奇米777777| 亚洲一二三久久 | 久久久久久综合 | 日韩欧美国产精品 | 91原创在线观看 | 久草在线资源观看 | 四虎在线永久免费观看 | 国产成人av在线 | 免费三级黄色片 | 免费精品在线 | 国产美女精品久久久 | 日韩av网站在线播放 | www.xxx.性狂虐| 日韩丝袜在线 | 国产区在线 | 深爱激情五月网 | 高清精品在线 | 中文字幕人成乱码在线观看 | 在线播放精品一区二区三区 | 欧美了一区在线观看 | 免费黄a | 天天操天天射天天操 | 久艹在线播放 | 免费看黄色91 | 精品在线免费视频 | 国产日韩视频在线播放 | 91一区二区三区久久久久国产乱 | 91成人天堂久久成人 | 99精品视频在线观看视频 | 国产成人一区二区精品非洲 | 日韩免费看的电影 | 色狠狠综合天天综合综合 | 99久久精品国产系列 | 欧美日韩首页 | www.夜夜爱| 日韩一区二区三区高清免费看看 | 91天堂素人约啪 | 日日爱视频 | 黄色毛片在线 | 欧美一级欧美一级 | 人人干人人模 | 欧美精品乱码99久久影院 | 少妇超碰在线 | 伊人影院在线观看 | 91精品爽啪蜜夜国产在线播放 | 91免费高清视频 | 色亚洲网 | 成人午夜性影院 | 国产区免费 | 久久久精品久久日韩一区综合 | 欧美人交a欧美精品 | 国产亚洲一级高清 | 999成人免费视频 | 看v片 | 黄网站a| 爱干视频 | 97在线播放 | 五月婷香蕉久色在线看 | 久艹视频在线免费观看 | 99久久日韩精品视频免费在线观看 | 成人黄色电影在线观看 | 亚洲精品午夜久久久久久久久久久 | 久久精品2 | 日韩在线免费小视频 | 久久久久久激情 | 成人a视频在线观看 | 欧美日韩国产一区二区在线观看 | 97国产在线播放 | 一个色综合网站 | 国产高清久久久久 | 国产高清99| 天天干天天想 | 九九热精品视频在线观看 | 日韩高清免费在线观看 | 久久国产精品免费一区二区三区 | 婷婷在线综合 | 999久久久久久久久6666 | 成人av片免费看 | 色九九视频 | 亚洲成av人片在线观看 | av在线电影网站 | 中文字幕在线免费 | 久热色超碰 | 国产精品一区二区三区久久 | 色.com| 91天堂影院 | 久久99中文字幕 | 日韩理论在线视频 | 婷婷久草 | 97国产大学生情侣酒店的特点 | 日韩免费中文 | 国产不卡精品视频 | 国产高清在线免费观看 | 亚洲狠狠丁香婷婷综合久久久 | 日韩欧美网址 | 免费成人在线观看 | 精品视频成人 | 伊人精品在线 | 欧美成人手机版 | 日本久久综合视频 | 国产精品毛片久久久久久久久久99999999 | 91精彩视频在线观看 | 国产欧美精品在线观看 | 国产精品a成v人在线播放 | 国产高清成人av | 国产精品 视频 | 久久久香蕉视频 | 色婷婷狠狠五月综合天色拍 | 欧洲不卡av| 国产香蕉视频在线播放 | 日日碰狠狠躁久久躁综合网 | 国产精品中文字幕在线 | 免费看黄视频 | 欧美性护士 | 久久黄色影院 | 尤物一区二区三区 | 人人网av | 黄色三几片 | 婷婷丁香久久五月婷婷 | 日韩午夜电影网 | 免费久久99精品国产婷婷六月 | 99热播精品 | 18岁免费看片 | 精品国产理论 | 国产日韩三级 | 日批视频在线播放 | 久久夜夜操 | 午夜精品久久久 | 国产成人综合在线观看 | 91精品视频免费看 | 国产精品视频永久免费播放 | 日日操日日干 | 精品久久久久亚洲 | 日韩亚洲国产精品 | 国产高清99 | 日日草av | 国产又粗又猛又色又黄视频 | 一级免费av | 精品久久久免费视频 | 国产精品免费观看在线 | 免费观看xxxx9999片 | 午夜精品导航 | 国产在线日本 | 99色免费| 91精品电影 | 国产精品久久久久毛片大屁完整版 | 成+人+色综合| 最新色视频 | 免费看片成年人 | 麻豆传媒视频在线播放 | 久久视频这里有精品 | 天天操夜夜操天天射 | 久久国产精品久久久久 | 日韩精品久久久久久久电影99爱 | 黄色三级免费 | 欧美一级免费 | 久草在线免费播放 | 欧美不卡视频在线 | 一区二区免费不卡在线 | 久久久91精品国产一区二区三区 | 日本黄色免费电影网站 | 国产精品一区二区 91 | 91精品视频网站 | 国内精品久久久精品电影院 | 国产免费黄视频在线观看 | 久久精品老司机 | 亚洲综合在线播放 | 欧美成人亚洲 | 国产九色91 | 中文字幕区 | 另类老妇性bbwbbw高清 | 狠狠88综合久久久久综合网 | 97色婷婷人人爽人人 | 亚洲91精品在线观看 | 久久精视频 | 三级黄色在线 | 国产成人精品日本亚洲999 | 最新av在线网站 | 天天天插 | 色婷婷视频网 | 久久综合色影院 | 香蕉成人在线视频 | 国产精品一区欧美 | 国产精品2020| 亚洲黄色免费在线看 | 日本性动态图 | 黄色成人毛片 | 婷婷六月综合亚洲 | 97免费视频在线播放 | 日本精品午夜 | 午夜婷婷综合 | 欧美电影黄色 | 欧美性免费 | 久久av电影 | 黄色av电影一级片 | 久久成人精品电影 | 五月天综合色激情 | 欧美精品久久久久久久 | 免费观看v片在线观看 | 日日躁夜夜躁xxxxaaaa | 国产四虎影院 | 欧美激情视频一区二区三区 | 久久精品综合 | 最新中文字幕在线播放 | 久久久久国产一区二区三区四区 | 久久久精品影视 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲一区精品人人爽人人躁 | 99久久久成人国产精品 | 黄色软件视频网站 | 国产日本高清 | 午夜黄色一级片 | 手机看片中文字幕 | 国产视频99 | 久久精品中文字幕 | 国产成人一区二区三区久久精品 | 成人免费看片网址 | 精品亚洲一区二区 | 国产亚洲小视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 97电影在线看视频 | 国产一区二区三区免费视频 | 超碰伊人网 | 国精产品999国精产品岳 | 亚av在线 | 中午字幕在线观看 | 一区二区三区手机在线观看 | 成人中文字幕在线 | 超碰在线最新网址 | 91av视频在线免费观看 | 天天综合婷婷 | 国产视频 亚洲精品 | 精品少妇一区二区三区在线 | 国内偷拍精品视频 | 你操综合 | 欧美激情另类文学 | 91视频传媒| 欧美 日韩 国产 成人 在线 | 国产日本高清 | 国产在线国偷精品产拍免费yy | 91.精品高清在线观看 | 国产91精品看黄网站 | 亚洲精品视频在线 | 精品一区欧美 | 亚洲黄色免费电影 | 最新超碰在线 | 国产精品永久免费视频 | 久久精品视频18 | 五月天六月婷婷 | 日韩高清二区 | 国产99久久久国产 | 日韩av五月天 | 精品欧美小视频在线观看 | 久草在线视频免赞 | 久久久久草| 精品一二三区视频 | 国产看片免费 | 精品国产一区二区三区久久久 | 久人人 | 久久天天拍 | 国产精品成人品 | 99精品国产aⅴ | 国产精品久免费的黄网站 | 91视频中文字幕 | 亚洲激情中文 | 久久精品视频网站 | 国产专区精品 | 97在线观看免费观看高清 | 成人永久免费 | 伊人久久精品久久亚洲一区 | 国产一区二区三区四区在线 | 欧美激情视频在线观看免费 | 欧美一级电影免费观看 | 亚洲国产高清在线 | 免费高清无人区完整版 | 国产精品免费在线播放 | 亚洲年轻女教师毛茸茸 | 九九精品久久 | 久久试看| 日韩视频免费 | 色视频 在线 | 麻豆国产精品一区二区三区 | 亚洲jizzjizz日本少妇 | 久久综合偷偷噜噜噜色 | zzijzzij亚洲日本少妇熟睡 | 亚洲国产精品电影 | 成人免费看黄 | 成人小视频免费在线观看 | 久久精品国产亚洲aⅴ | 成人资源在线 | 精品久久一区二区三区 | 超碰久热 | 激情片av | 国产精品中文在线 | 国产精品v欧美精品 | 亚洲精品视频在线免费 | 日韩电影在线观看一区二区 | 国产视频一区在线 | 五月天,com | 日韩,精品电影 | 人人舔人人爱 | 国产99色 | 日韩一二区在线观看 | 亚洲午夜精品电影 | 精品a在线| 亚洲成人资源在线观看 | 日韩av免费网站 | 色婷婷综合久久久久中文字幕1 | 国产高清av免费在线观看 | 在线观看视频一区二区三区 | 18pao国产成视频永久免费 | 奇米7777狠狠狠琪琪视频 | 天堂在线一区二区三区 | 在线视频 亚洲 | 国产亚洲高清视频 | 一级黄色片在线播放 | 午夜免费在线观看 | 色视频在线看 | 在线免费观看黄色 | 久久在现 | 久久久久激情视频 | 欧美资源| 欧美日韩一区二区免费在线观看 | 久久久美女 | 在线看国产日韩 | 91九色精品国产 | 日韩在线第一 | 香蕉视频国产在线观看 | 国产高清成人 | 免费av网址大全 | 亚洲国产午夜视频 | 99精品视频在线播放观看 | 成人av.com | 在线观看日本高清mv视频 | 91麻豆精品国产午夜天堂 | 麻豆一精品传二传媒短视频 | 日韩夜夜爽 | 午夜婷婷在线播放 | 精品一区三区 | 国产精品v欧美精品v日韩 | 天天搞天天干天天色 | 成人av网站在线 | 香蕉视频在线网站 | 伊人中文在线 | 2018精品视频| 美女在线观看av | 亚洲综合视频在线观看 | 久久综合久久伊人 | 91丨精品丨蝌蚪丨白丝jk | 69精品视频 | 免费网站在线观看人 | 久久超碰99 | 在线观看的av网站 | 中文字幕日韩精品有码视频 | 亚洲最大免费成人网 | 五月天婷亚洲天综合网精品偷 | 欧美日韩在线免费观看 | 久草在线视频在线 | 亚洲精品中文字幕在线观看 | 成人免费影院 | 99精品视频在线观看 | 精品一区精品二区 | 91视频在线观看免费 | 亚洲天堂网在线视频观看 | www.久久免费视频 | 午夜视频在线观看一区二区三区 | 深爱激情五月综合 | 18国产精品福利片久久婷 | 九七视频在线观看 |