成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

前端異步那些年

sshe / 1676人閱讀

摘要:自己最大的賣點(diǎn)就是異步回調(diào),但是又總是在一路上撒潑一樣在脫掉這一塊外衣。

js 自己最大的賣點(diǎn)就是異步回調(diào),但是又總是在一路上撒潑一樣在脫掉這一塊外衣。

1: 最原始的回調(diào)實(shí)現(xiàn)

const fs = require("fs")
function readFileOne(path,callback){
  fs.readFile(path,function(err,res){
      if(!err) {
        callback.call(null,null, res.toString() )
      }else{
         callback.call(null,err)
      }
  })
}
readFileOne("./test.json",function(err,res){
    console.log(res)
})

沒(méi)毛病,上面的代碼很容易就實(shí)現(xiàn)了讀取文件的操作,回調(diào)函數(shù)很方便,可惜半路殺出一個(gè)promise

2: promise 實(shí)現(xiàn)異步寫(xiě)法

const fs = require("fs")
function readText(){
   return new Promise((resolve,reject)=>{
       fs.readFile("./test.json",(err,res)=>{
           if(err){
               reject(err)
           }else{
              resolve(res)
           }
       })
   })
}


readText().then((res)=>{
    console.log(res.toString())
}).catch((e)=>{
     console.log(e)
})

也完全沒(méi)有毛病,實(shí)現(xiàn)手段上更加流化,實(shí)現(xiàn)了異步代碼同步化寫(xiě),然毛線,又出來(lái)一個(gè) Generate],這個(gè)是個(gè)什么東西?可以看我的另一篇文章 javascript中 迭代器是個(gè)什么東西?

3: generate 迭代器 實(shí)現(xiàn)異步

const fs = require("fs")

// 8.x版本node內(nèi)置將函數(shù)轉(zhuǎn)化為`pronmise`的方法
const { promisify } =  require("util")

const proFiles = promisify(fs.readFile)
function* readFile(path){
     yield proFiles(path)
}

var g = readFile("./test.json")
    g.next().value.then((r)=>{
       console.log(r.toString() )
    })

4: generate 還沒(méi)有用熟練,es7最終出了終極解決方法 Async

async 更加語(yǔ)義化比generator,也不單單是相對(duì)于異步請(qǐng)求,

const proFiles = promisify(fs.readFile)
const readFile = async function (path){
    let res = await proFiles(path)
    return res
}


readFile("./test.json").then((res)=>{
   console.log(res.toString())
})

這個(gè)是最簡(jiǎn)單的 async同步使用方式,更加復(fù)雜的可以i查看;這里值是拋磚引玉

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108508.html

相關(guān)文章

  • Evil Python

    摘要:用將倒放這次讓我們一個(gè)用做一個(gè)小工具將動(dòng)態(tài)圖片倒序播放發(fā)現(xiàn)引力波的機(jī)構(gòu)使用的包美國(guó)科學(xué)家日宣布,他們?nèi)ツ暝率状翁綔y(cè)到引力波。宣布這一發(fā)現(xiàn)的,是激光干涉引力波天文臺(tái)的負(fù)責(zé)人。這個(gè)機(jī)構(gòu)誕生于上世紀(jì)年代,進(jìn)行引力波觀測(cè)已經(jīng)有近年。 那些年我們寫(xiě)過(guò)的爬蟲(chóng) 從寫(xiě) nodejs 的第一個(gè)爬蟲(chóng)開(kāi)始陸陸續(xù)續(xù)寫(xiě)了好幾個(gè)爬蟲(chóng),從爬拉勾網(wǎng)上的職位信息到爬豆瓣上的租房帖子,再到去爬知乎上的妹子照片什么的,爬蟲(chóng)...

    Turbo 評(píng)論0 收藏0
  • 前端是有多難?

    摘要:我之前從來(lái)沒(méi)想過(guò)高階函數(shù)怎么在里面用,直到看了源碼吃了一驚,臥槽,還能這么寫(xiě)還有說(shuō)爛了的柯里化。然而也加重了前端的負(fù)擔(dān)。畢竟和前端靠的近,人家問(wèn)起來(lái)自己不會(huì)多尷尬。好了,一個(gè)前端工程師做到這份上也算是仁至義盡了。 最近感覺(jué)追不動(dòng)前端的發(fā)展了,寫(xiě)篇文章感嘆一下。 HTML 我知道有一些學(xué)校會(huì)教一些簡(jiǎn)單的網(wǎng)頁(yè)制作,就是用 Dreamweaver 點(diǎn)一點(diǎn)的那種。大多也會(huì)留作業(yè),最后交作業(yè)的時(shí)...

    habren 評(píng)論0 收藏0
  • 那些的體驗(yàn)技術(shù)部

    摘要:隨著業(yè)務(wù)的爆發(fā),團(tuán)隊(duì)人數(shù)迅速增長(zhǎng)起來(lái),團(tuán)隊(duì)名也從前端開(kāi)發(fā)部改名成體驗(yàn)技術(shù)部,意在體現(xiàn)前端工程師的核心競(jìng)爭(zhēng)力用技術(shù)解決產(chǎn)品體驗(yàn)問(wèn)題。前后端分離的研發(fā)模式在社區(qū)流行起來(lái),體驗(yàn)技術(shù)部最先實(shí)踐的是基于的應(yīng)用層方案。2008 年對(duì)中國(guó)人是復(fù)雜的一年,冰災(zāi),大地震,奧運(yùn)會(huì)接踵而至。對(duì)玉伯來(lái)說(shuō)也一樣,趕在奧運(yùn)會(huì)排查臨時(shí)人口之前,玉伯從北京中科院軟件所離開(kāi),憑著自己幾年來(lái)在程序開(kāi)發(fā)上的經(jīng)歷和對(duì)新興前端行業(yè)的...

    sean 評(píng)論0 收藏0
  • 京東單品頁(yè)前端開(kāi)發(fā)那些不得不說(shuō)的事兒

    摘要:是負(fù)責(zé)展示京東商品的落地頁(yè)面。比如京東首頁(yè),正常情況加載完頁(yè)面一共有多個(gè)節(jié)點(diǎn),基本上全部用于展示商品信息廣告圖和內(nèi)容布局,頁(yè)面上的三方異步服務(wù)也比較少。 原文:https://keelii.github.io/2016/07/31/something-have-to-say-with-JD-item 簡(jiǎn)介 詳情頁(yè)也叫做單品頁(yè),域名以「item.jd.com/skuid.html」為格式...

    FleyX 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<