第八周第二天筆記

ES6之Promise類

1 Promise類基礎(chǔ)知識解讀

  • promise類的靜態(tài)屬性方法
    • 分類:resolve(),reject(),all(),race()
      • resolve():作為形參傳入到實(shí)例對象中榕酒,在條件滿足時(shí)违诗,作為回調(diào)函數(shù)執(zhí)行,可以傳入實(shí)參丑蛤;then中的第一個(gè)參數(shù)回調(diào)函數(shù)接收录平;
      • reject():作為形參傳入到實(shí)例對象中麻车,在條件不滿足時(shí),即失敗時(shí)斗这,作為回調(diào)函數(shù)執(zhí)行动猬,可以傳入實(shí)參,then中第二個(gè)參數(shù)回調(diào)函數(shù)接收表箭,或是catch中的回調(diào)函數(shù)接收赁咙;
      • all():提供了并行執(zhí)行異步操作的能力,并且在所有異步操作執(zhí)行完后才執(zhí)行回調(diào)免钻,即當(dāng)最慢的一個(gè)沒有執(zhí)行完時(shí)彼水,會執(zhí)行完的異步操作傳入的數(shù)據(jù),以數(shù)組的形式儲存极舔,待最慢的一個(gè)執(zhí)行完凤覆,以一個(gè)數(shù)組的形式,將數(shù)據(jù)傳入到then姆怪;
      • race():多個(gè)異步操作同樣是并行執(zhí)行的叛赚,誰最快,數(shù)據(jù)進(jìn)入then稽揭;其他的異步操作會繼續(xù)執(zhí)行俺附,但是then不會再接受其他異步操作的數(shù)據(jù);
    • 使用:Promise類名調(diào)用溪掀,即Promise.all;實(shí)例對象不能使用事镣;
  • promise類原型上的屬性方法
    • 分類:then(),catch()
      • then():接收第一個(gè)參數(shù)揪胃,是回調(diào)函數(shù)璃哟,并且會拿到異步操作成功后resolve傳入的參數(shù),第二個(gè)參數(shù)可有可無喊递,如果添加随闪,也是一個(gè)回調(diào)函數(shù),里面拿到的是骚勘,異步操作失敗后reject傳入的參數(shù)铐伴;
      • catch():接受一個(gè)參數(shù)撮奏,是回調(diào)函數(shù),第一個(gè)功能当宴,是當(dāng)異步操作失敗后畜吊,接收reject傳入的參數(shù);第二個(gè)功能户矢,是異步操作成功后玲献,會進(jìn)入then,但是在then中執(zhí)行代碼梯浪,報(bào)錯(cuò)了捌年,然后,catch就接收到了報(bào)錯(cuò)的文本驱证,然后不會終止JS延窜,可以保證JS繼續(xù)執(zhí)行;
    • 使用:實(shí)例對象才能使用原型的屬性方法抹锄;
  • 總結(jié):實(shí)例創(chuàng)建中,當(dāng)滿足條件后荠藤,會執(zhí)行resolve(),相當(dāng)于then里面匿名函數(shù)調(diào)用伙单;相當(dāng)于回調(diào)函數(shù),而resolve可以看做then里面匿名函數(shù)的函數(shù)名哈肖;異步操作其實(shí)就是實(shí)例對象自執(zhí)行吻育;
  • Promise詳細(xì)解讀文件

2 Promise類實(shí)例

  • 實(shí)例1:圖片請求超時(shí)
    • 知識點(diǎn):將兩個(gè)異步操作放入到race方法中,如果5秒之內(nèi)圖片請求成功了淤井,那么便進(jìn)入then方法布疼,執(zhí)行正常的流程。如果5秒鐘圖片還未成功返回币狠,那么imgTimeout最快執(zhí)行游两,則進(jìn)入catch,報(bào)出“圖片請求超時(shí)”的信息漩绵。當(dāng)requestImg函數(shù)中圖片地址出錯(cuò)贱案,圖片無法正常加載,onload事件不會執(zhí)行止吐,resolve不會執(zhí)行宝踪,所以不會進(jìn)入then;
       <script>
        function requestImg() {
            return new Promise(function (resolve) {
                var oImg=new Image();
                oImg.onload=function(){
                   resolve(this);
                };
                oImg.src="image1/01.png";
            })
        }
        function imgTimeout() {
            return new Promise(function (resolve, reject) {
                setTimeout(function () {
                    reject("圖片加載超時(shí)");
                },5000)
            })
        }
        Promise.race([requestImg(),imgTimeout()])
            .then(function (data) {
                document.body.appendChild(data);
            })
            .catch(function (reason) {
                console.log(reason);
            });
       </script>
    
  • 實(shí)例2:小球運(yùn)動實(shí)例
    • 知識點(diǎn):多次執(zhí)行異步操作碍扔,執(zhí)行異步操作1后瘩燥,當(dāng)條件滿足時(shí),會執(zhí)行異步操作1中resolve(),而在異步操作1點(diǎn)then的匿名函數(shù)中返回另一個(gè)異步操作2不同;然后執(zhí)行異步操作2厉膀,實(shí)質(zhì)為實(shí)例對象的自執(zhí)行,然后滿足條件時(shí),執(zhí)行異步操作2中的resolve()站蝠,然后再在異步操作2點(diǎn)then的匿名函數(shù)中返回異步操作3汰具,反復(fù)異步操作,直到最后一個(gè)異步操作中條件滿足后菱魔,執(zhí)行resolve(),在其后面的then匿名函數(shù)中留荔,添加運(yùn)動結(jié)束代碼;
     <!DOCTYPE html>
     <html lang="en">
     <head>
         <meta charset="UTF-8">
         <title>小球運(yùn)動實(shí)例</title>
         <style>
             div{
                 width: 60px;
                 height: 60px;
                 border-radius: 50%;
                 margin-bottom: 10px;
             }
             .div1{
                 background-color: red;
             }
             .div2{
                 background-color: green;
             }
             .div3{
                 background-color: yellow;
             }
         </style>
     </head>
     <body>
     <div class="div1" style="margin-left:0"></div>
     <div class="div2" style="margin-left:0"></div>
     <div class="div3" style="margin-left:0"></div>
     <script>
         var oDiv1=document.getElementsByTagName("div")[0];
         var oDiv2=document.getElementsByTagName("div")[1];
         var oDiv3=document.getElementsByTagName("div")[2];
         //ele:操作的元素澜倦;target:元素運(yùn)動到的目的地
         function promiseAnimate(ele,target) {//函數(shù)返回值為實(shí)例對象
             //resolve:成功之后想做什么聚蝶,reject:失敗之后想做什么
             return new Promise(function(resolve,reject){
                 function animate() {//去掉參數(shù)
                     setTimeout(function () {
                         var n=parseFloat(ele.style.marginLeft);
                         if(n===target){
                             resolve();//做回調(diào)函數(shù)要做的事情
                         }else{
                             if(n<target){
                                 n++;
                                 ele.style.marginLeft=n+"px";
                             }else{
                                 n--;
                                 ele.style.marginLeft=n+"px";
                             }
                             animate();
                         }
                     },10);
                 }
                 animate();//調(diào)用一次;
             })
         }
         promiseAnimate(oDiv1,100)
             .then(function () {
                 return promiseAnimate(oDiv2,200)
             })
             .then(function () {
                 return promiseAnimate(oDiv3,300)
             })
             .then(function () {
                 return promiseAnimate(oDiv3,150)
             })
             .then(function () {
                 return promiseAnimate(oDiv2,150)
             })
             .then(function () {
                 return promiseAnimate(oDiv1,150)
             })
             .then(function () {
                 alert("運(yùn)動結(jié)束")
             })
     </script>
     </body>
     </html>
    

運(yùn)動庫

  • 實(shí)例1:左右按鈕點(diǎn)擊運(yùn)動
    • 知識點(diǎn):
      • 邊界值的判斷:1)在cur累加累減之前藻治,必須加減步長進(jìn)行判斷碘勉;2)在cur累加累減之后,不用加減步長進(jìn)行判斷桩卵,直接判斷cur是否滿足條件验靡;
      • 邊界值判斷條件成立,執(zhí)行的語句中雏节,設(shè)置邊界值胜嗓,然后添加return,阻斷程序執(zhí)行钩乍;
      • 需注意:設(shè)置樣式值辞州,必須在邊界值判斷之后;寥粹;
       <script>
        //1 邊界值判斷变过,在cur累加累減之前,必須加減步長進(jìn)行判斷涝涤;
        if(cur>target){
            if(cur-5<=target){//提前加減步長進(jìn)行比較媚狰,如果滿足條件就設(shè)置目標(biāo)值;
                oDiv.style.left=target+"px";
                return;
            }
            cur-=5;
        }else{
            if(cur+5>=target){
                oDiv.style.left=target+"px";
                return;
            }
            cur+=5;
        }
        oDiv.style.left=cur+"px";
       //2 邊界值判斷妄痪,在cur累加累減之后哈雏,不用加減步長進(jìn)行判斷,直接判斷cur是否滿足條件衫生,但是需注意的一點(diǎn)是裳瘪,設(shè)置必須在判斷條件之后;
       if(cur>target){
           cur-=5;
           if(cur<=target){//在累加之后判斷無需加減步長罪针,如果滿足條件就設(shè)置目標(biāo)值彭羹;
             oDiv.style.left=target+"px";
             return;
            }
       }else{
           cur+=5;
           if(cur>=target){
             oDiv.style.left=target+"px";
             return;
            }
       }
       oDiv.style.left=cur+"px";
       </script>
      
      • 定時(shí)器的timer,設(shè)置在元素的自定義屬性上,避免全局變量
      • 兩個(gè)點(diǎn)擊事件執(zhí)行一個(gè)定時(shí)器時(shí)會出問題泪酱,所以需要在執(zhí)行定時(shí)器之前派殷,關(guān)閉定時(shí)器还最;
      • 優(yōu)化思想:
        • 出現(xiàn)的問題:定時(shí)器中要添加函數(shù)的定義階段,不加括號毡惜,但是針對帶參數(shù)的函數(shù)拓轻,就無法只寫函數(shù)名,可以新建一個(gè)匿名函數(shù)將函數(shù)調(diào)用放入匿名函數(shù)中经伙;如:oDiv.timer=setTimeout(function(){ moveBat(target);},30)扶叉,但是這樣設(shè)置會出現(xiàn)問題,當(dāng)定時(shí)器中的moveBat(target)執(zhí)行值帕膜,會查找參數(shù)target枣氧,向匿名函數(shù)查找,查找不到再向上級作用域查找垮刹,而此時(shí)定時(shí)器中的匿名函數(shù)形成的私有作用域不會被釋放达吞,每執(zhí)行一次定時(shí)器,都會新建一個(gè)私有作用域荒典,所以內(nèi)存會很大酪劫,不利于優(yōu)化;
        • 解決措施:在moveBat(target)函數(shù)定義中寺董,添加一個(gè)新的函數(shù)_move()契耿,將所有代碼放入其中,在定時(shí)器中添加_move螃征,這樣當(dāng)定時(shí)器執(zhí)行時(shí),就會重復(fù)調(diào)用_move函數(shù)透敌;不會再形成匿名函數(shù)盯滚;但是需注意的是,在添加_move定義階段后酗电,必須執(zhí)行一次魄藕;
    • 代碼:
     <!DOCTYPE html>
     <html lang="en">
     <head>
         <meta charset="UTF-8">
         <title>左右按鈕點(diǎn)擊運(yùn)動</title>
         <style>
             *{
                 margin: 0;
                 padding: 0;
             }
             button{
                 margin: 5px;
                 width: 100px;
                 height: 30px;
                 line-height: 30px;
                 cursor: pointer;
             }
             #but{
                 width:230px;
                 height: 50px;
                 margin: 0 auto;
             }
             #div1{
                 width: 100px;
                 height: 100px;
                 line-height: 100px;
                 text-align: center;
                 font-size: 30px;
                 color: blue;
                 border-radius: 50%;
                 background-color: red;
                 position: absolute;
                 left: 500px;
                 top: 100px;
             }
             .div2{
                 width: 10px;
                 height: 500px;
                 position: absolute;
                 top: 50px;
                 background-color: blue;
             }
             #div2{
                 left: 240px;
             }
             #div3{
                 left: 1250px;
             }
         </style>
     </head>
     <body>
     <div id="but"><button>向左</button><button>向右</button></div>
     <div id="div1">太陽</div>
     <div class="div2" id="div2"></div>
     <div class="div2" id="div3"></div>
     <script>
         var oDiv=document.getElementById("div1");
         var aBtn=document.getElementsByTagName("button");
         aBtn[0].onclick=function () {
             moveBat(250);
         };
         aBtn[1].onclick=function () {
             moveBat(1150);
         };
         function moveBat(target) {
             _moveBat();//執(zhí)行一次;
             function _moveBat(){//添加函數(shù)撵术,利于優(yōu)化
                 var cur=oDiv.offsetLeft;
                 if(cur>target){
                     if(cur-5<=target){//提前加減步長進(jìn)行比較背率,如果滿足條件就設(shè)置目標(biāo)值;
                         oDiv.style.left=target+"px";
                         return;
                     }
                     cur-=5;
                 }else{
                     if(cur+5>=target){
                         oDiv.style.left=target+"px";
                         return;
                     }
                     cur+=5;
                 }
                 oDiv.style.left=cur+"px";
                 clearTimeout(oDiv.timer);//執(zhí)行前先關(guān)閉定時(shí)器嫩与;
                 oDiv.timer=setTimeout(_moveBat,30);//將timer設(shè)置在元素的自定義屬性上寝姿,避免全局變量;
             }
            /* oDiv.timer=setTimeout(function () {//設(shè)置匿名函數(shù)后划滋,會重復(fù)新建私有作用域饵筑,不能釋放,不利于優(yōu)化
                 moveBat(target);
             },30);*/
         }
         //1 邊界值的判斷处坪,預(yù)判是否到達(dá)邊界值根资;
         //2 定時(shí)器的timer,設(shè)置在元素的自定義屬性上架专,避免全局變量
         //3 兩個(gè)點(diǎn)擊事件執(zhí)行一個(gè)定時(shí)器時(shí)會出問題,所以需要在執(zhí)行定時(shí)器之前玄帕,關(guān)閉定時(shí)器部脚;
         //4 定時(shí)器中新建匿名函數(shù)的優(yōu)化問題;
     </script>
     </body>
     </html>
    
  • 運(yùn)動庫linear函數(shù)封裝
    • 目的:獲取運(yùn)動元素的實(shí)時(shí)位置
    • 參數(shù):
      • b:begin 運(yùn)動起始位置
      • c:change 還要走多遠(yuǎn)
      • d:duration 走完剩下的路程需要的總時(shí)間
      • t:time 代表走了多少時(shí)間
    • 變量:time值為可變值裤纹,不斷地累加委刘,然后計(jì)算出實(shí)時(shí)位置;配合定時(shí)器使用服傍;
    • 返回值:返回實(shí)時(shí)位置值钱雷;
     <script>
       function linear(c,d,t,b) {
           return c/d*t+b;
       }
     </script>
    
    • 實(shí)例
     <script>
         function linear(c,d,t,b) {
             return c/d*t+b;
         }
         var oDiv1=document.getElementById("div1");//運(yùn)動元素
         var oDiv2=document.getElementById("div2");//目標(biāo)位置元素
         //目標(biāo)值target需要確定
         var target=oDiv2.offsetLeft-oDiv1.offsetWidth-oDiv2.offsetWidth;//減去運(yùn)動元素的寬度和自身的寬度;
         var b=oDiv1.offsetLeft;
         var c=target-b;
         var d=1000;
         var t=0;
         oDiv1.timer=setInterval(function () {
             t+=10;//time為變量吹零,不斷累加罩抗;
             //邊界點(diǎn)判斷
             if(t>d){
                 oDiv1.style.left=target+"px";
                 clearInterval(oDiv1.timer);
             }
             var curLeft=linear(c,d,t,b);
             oDiv1.style.left=curLeft+"px";
         },10)
     </script>
    
  • 實(shí)例:一個(gè)物體的多運(yùn)動
    • 目的:實(shí)現(xiàn)一個(gè)物體在x,y兩個(gè)方向上的同時(shí)勻速運(yùn)動;
    • 思路:
      • 分別求出物體運(yùn)動在x,y方向上的起始位置灿椅,目標(biāo)位置套蒂,算出各自方向上的總路程;
      • 設(shè)定總時(shí)間duration茫蛹;
      • 起始時(shí)間為0,即time初始賦值為0操刀;
      • 設(shè)置定時(shí)器:1)進(jìn)行time變量的累加,最好跟定時(shí)器的執(zhí)行時(shí)間相同婴洼;2)邊界點(diǎn)判斷(設(shè)置目標(biāo)位置骨坑、停止定時(shí)器、阻斷程序執(zhí)行)柬采;3)利用linear方法獲取x,y方向上的實(shí)時(shí)位置欢唾;4)設(shè)置實(shí)時(shí)位置;
     <!DOCTYPE html>
     <html lang="en">
     <head>
         <meta charset="UTF-8">
         <title>一個(gè)物體的多運(yùn)動</title>
         <style>
             *{
                 margin: 0;
                 padding: 0;
             }
             #div1{
                 width: 100px;
                 height: 100px;
                 line-height: 100px;
                 text-align: center;
                 font-size: 30px;
                 color: blue;
                 border-radius: 50%;
                 background-color: red;
                 position: absolute;
                 left: 300px;
                 top: 30px;
             }
             .div2{
                 width: 10px;
                 height: 500px;
                 position: absolute;
                 top: 30px;
                 left: 1050px;
                 background-color: blue;
             }
         </style>
     </head>
     <body>
     <div id="div1">物體</div>
     <div class="div2" id="div2"></div>
     <script src="utils.js"></script>
     <script>
         function linear(c,d,t,b) {
             return c/d*t+b;
         }
         var oDiv1=document.getElementById("div1");
         var oDiv2=document.getElementById("div2");
         var targetLeft=oDiv2.offsetLeft-oDiv1.offsetWidth,targetTop=oDiv2.offsetHeight+oDiv2.offsetTop-oDiv1.offsetHeight;
         var beginLeft=oDiv1.offsetLeft,beginTop=oDiv1.offsetTop;
         var changLeft=targetLeft-beginLeft,changTop=targetTop-beginTop;
         var duration=1000;
         var time=0;
         var timer=setInterval(function () {
             //1 變量累加
             time+=10;
             //2 邊界點(diǎn)判斷
             if(time>=duration){
                 //設(shè)置目標(biāo)值
                 utils.css(oDiv1,{
                     left:targetLeft,
                     top:targetTop
                 });
                 //停止定時(shí)器
                 clearInterval(timer);
                 //阻斷程序執(zhí)行
                 return ;
             }
             //3 獲取當(dāng)前位置
             var curLeft=linear(changLeft,duration,time,beginLeft);
             var curTop=linear(changTop,duration,time,beginTop);
             //4 設(shè)置當(dāng)前位置
             utils.css(oDiv1,{
                 left:curLeft,
                 top:curTop
             });
         },10);
     </script>
     </body>
     </html>
    
  • 實(shí)例:封裝方法粉捻,實(shí)現(xiàn)物體的多運(yùn)動庫
    • 參數(shù): ele:元素礁遣,target:目標(biāo)值,對象肩刃,duration:運(yùn)動總時(shí)間
    • 注意點(diǎn):
      • 工具庫的引用祟霍,需要按照引用順序調(diào)用;
      • 在工具庫中利用自執(zhí)行函數(shù)封裝的方法盈包,需要設(shè)置window沸呐,將其設(shè)置成全局變量,這樣才能在全局引用续语;
    • 工具庫代碼:
     (function () {
         var gbEffect={
             Linear:function(c,d,t,b){
                 return c/d*t+b;
             }
         };
         function move(ele,target,duration){
             //ele:元素垂谢,target:目標(biāo)值,對象疮茄,duration:時(shí)間
             duration=duration || 2000;
             var begin={},change={};
             for(var attr in target){
                 begin[attr]=utils.css(ele,attr);
                 change[attr]=target[attr]-begin[attr];
             }
             var time=0;
             //定時(shí)器
             var timer=setInterval(function () {
                 //變量累加
                 time+=10;
                 //邊界點(diǎn)判斷
                 if(time>=duration){
                     //設(shè)置邊界值
                     console.log(1)
                     utils.css(ele,target);
                     //停止定時(shí)器
                     clearInterval(timer);
                     //阻斷程序執(zhí)行
                     return ;
                 }
                 //獲取實(shí)時(shí)位置
                 for(var attr in change){
                     var linear=gbEffect.Linear(change[attr],duration,time,begin[attr]);
                     //設(shè)置實(shí)時(shí)位置
                     utils.css(ele,attr,linear);
                 }
             },10)
         }
         //自執(zhí)行函數(shù)中與外界無聯(lián)系滥朱,利用window設(shè)置為全局
         window.animate=move;
     })();
    
    • 執(zhí)行代碼:
     <body>
     <div id="div1">物體</div>
     <div id="div2"></div>
     <script src="utils.js"></script>
     <script src="move.js"></script>
     <script>
         var oDiv1=document.getElementById("div1");
         var oDiv2=document.getElementById("div2");
         animate(oDiv1,{
             left:oDiv2.offsetLeft-oDiv1.offsetWidth,
             top:oDiv2.offsetTop+oDiv2.offsetHeight-oDiv1.offsetHeight,
             opacity:0.8
         },2000)
     </script>
     </body>
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末根暑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子徙邻,更是在濱河造成了極大的恐慌排嫌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缰犁,死亡現(xiàn)場離奇詭異淳地,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帅容,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門颇象,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人并徘,你說我怎么就攤上這事遣钳。” “怎么了麦乞?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵蕴茴,是天一觀的道長。 經(jīng)常有香客問我姐直,道長倦淀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任声畏,我火速辦了婚禮撞叽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘插龄。我一直安慰自己能扒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布辫狼。 她就那樣靜靜地躺著,像睡著了一般辛润。 火紅的嫁衣襯著肌膚如雪膨处。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天砂竖,我揣著相機(jī)與錄音真椿,去河邊找鬼。 笑死乎澄,一個(gè)胖子當(dāng)著我的面吹牛突硝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播置济,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼解恰,長吁一口氣:“原來是場噩夢啊……” “哼锋八!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起护盈,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挟纱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腐宋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體紊服,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年胸竞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欺嗤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卫枝,死狀恐怖煎饼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剃盾,我是刑警寧澤腺占,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站痒谴,受9級特大地震影響衰伯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜积蔚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一意鲸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尽爆,春花似錦怎顾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幅狮,卻和暖如春募强,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背崇摄。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工擎值, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逐抑。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓鸠儿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厕氨。 傳聞我的和親對象是個(gè)殘疾皇子进每,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,031評論 0 2
  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案汹粤,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,706評論 1 56
  • 1.何小桃南行所悟 終于回到了北京。 近一個(gè)月以來品追,何小桃一直在南方的大小城市來回穿梭玄括,似乎想從南方炙熱的空氣中找...
    叫我正小健閱讀 392評論 1 3
  • 我們在雨中別離 說不定又風(fēng)中相遇 白云說邂逅是一種傷心的美麗 就像那躲進(jìn)河流的雨滴 …… 歲月說簽名和留影都會都遺...
    存孝羽閱讀 177評論 0 0
  • 先人常言遭京、少時(shí)好讀書,壯時(shí)好行路泞莉,若偽少時(shí)苦哪雕,壯時(shí)知苦味。
    亞里蟲子閱讀 386評論 0 0