es6中的Promise异步执行方法与解决回调地狱

异步数据封装与执行 Promise

最大目的:通过链式调用解决回调地狱

1. 使用Promise封装读取文件:

const p = new Promise(function(res, rej) {

    fs.readFile('./es6.mdaafdasfa', (err, data) => {

        if (err) rej(err);

        res(data)

    })

}).then((res) => {

    console.log(res.toString()) //读取成功

}, (rej) => {

    console.log("读取失败")     //读取失败

})

2. 用promise读取多个文件同时解决回调地狱问题:

const fs = require('fs');

const { off } = require('process');

const p = new Promise((res, rej) => {

    fs.readFile('./es6.md', (err, data) => {//读取第一个文件

        if (err) rej(err);

        res(data)

    })

}).then((value) => {

    // console.log(value.toString())

    return new Promise((res, rej) => {

        fs.readFile('./flex.md', (err, data) => {//读取第二个文件

            if (err) rej(err)

            res([value, data])

        })

    })

}).then((value) => {

    console.log(value.toString())

    return new Promise((res, rej) => {

        fs.readFile('./promise.md', (err, data) => {//读取第三个文件

            if (err) rej(err)

                // console.log(value.push(data))

            value.push(data)

            res(value)

        })

    })

}).then(value => {

    console.log(value.toString())

})

3. Promise对象的catch方法

catch方法通常用来接收promise的rej对象情况,通常写在最后一个then的后面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值