第一章

作者: 阿水日记 | 来源:发表于2018-11-20 09:28 被阅读0次

    1-3 毫不犹豫的使用promise

    回调式(老旧)
    fs.readFile('./package.json',(err,data)=>{
       if(err) console.log(err)
       data=JSON.parse(data)
       console.log(data.name)
    })
    
    过度式
    function readFileAsync(path){
       return new Promise((resolve,reject)=>{
           fs.readFile(path,(err,data)=>{
               if(err) reject(err)
               resolve(data)
           })
       })
    }
    
    readFileAsync('./package.json')
    .then((data)=>{
       console.log(JSON.parse(data).name)
    }).catch(err=>{
       console.log(err)
    })
    
    最新的包装式
    const util=require('util')
    //util.promisify(放一个异步的有回调的函数) 包装成promise
    util.promisify(fs.readFile)('./package.json')
    //.then(console.log)
    .then(JSON.parse)
    .then(data=>{
        console.log(data.name)
    }).catch(err=>{
        console.log(err)
    })
    

    1-4 使用babel 编译es7 async function

    // 使用async即用同步代码写异步的操作来完成上一个例子的代码
    const fs = require('fs')
    const util = require('util')
    const readFile = util.promisify(fs.readFile)
    
    async function init(path) {
        try{
            console.log('begin')
            let data = await readFile(path)
            console.log(JSON.parse(data).name)
            console.log('over')
        }catch(err){
            console.log(err)
        }
    }
    
    init('./package.json')
    

    以后会讲到如何使用babel去编译

    相关文章

      网友评论

          本文标题:第一章

          本文链接:https://www.haomeiwen.com/subject/mlctqqtx.html