node.js笔记(九) 避免回调地狱的办法_Promise

利用Promise避免回调地狱

var p1=new Promise(function(resolve,reject){
    false.readFile('./data/a.txt','utf-8',function(err,data){
        if(err){
            //把容器pending状态改为rejected
            reject(err)
            //reject是then方法的第二个函数
        }
        else{
            resolve(data)
            //把容器pending状态改为resolved
            //resolved其实就是下一个状态
        }
    })
})


var p2=new Promise(function(resolve,reject){
    false.readFile('./data/a.txt','utf-8',function(err,data){
        if(err){
            reject(err)
        }
        else{
            resolve(data)
        }
    })
})
//异步调用,链式编程
p1
    .then(function(data){
    console.log(data)
    return p2
},function(err){
    console.log(err)
})
    .then(function(data){
        console.log(data)
        return p2
    },function(err){
        console.log(err)
    })
//此处function即为data
//注意,then方法会自动将return的值实例为一个容器对象,所以返回什么都是可以的,但是没有意义(


//小诗四行
//你的孤独才是最有价值的-
//不需要去逃避,不需要用学习或者玩乐麻醉自己;
//尝试把时间留给内心的声音
//你就会知道,宾朋满座并非优势,能够享受孤独才是一生的财富。 

发布了165 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/treblez/article/details/103811009