node学习——Promise的实例应用

node学习——Promise的实例应用

Promise:字面含义:一定给予你承诺过的结果

     ##.普通的写法

      err:表示异常 data: 想要的数据

    const fs = require('fs');//此处引入的模块必须是字符串形式

    fs.readFile('./package.json',(err,data)=>{

        if(err) return console.log(err)

        data = JSON.parse(data)

        console.log(data.name)

    })

    ##.promise的写法

    function readFileAsync(path){

        return new Promise((resolve,reject)=>{

            fs.readFile(path,(err,data)=>{

                if(err) reject(err)

                else resolve(data)

            })

        });

    }

    //promise写法的调用

   readFileAsync('./package.json') 

    .then(data=>{

        data = JSON.parse(data);

        console.log(data.name)

    })

    .catch(err=>{

        console,log(err);

    }) 

    ##.node新增模块util模块下的promisify()的用法

    const util = require('util');

    util.promisify(fs.readFile)('./package.json')

        .then(data=>{

            data = JSON.parse(data);

            console.log(data.name);

         }.catch(err=>{

             console.log(err);

         })

    })