nodejs 异步promise用法

Promise提供了一种异步执行模式。
注意一点Promise的执行仍然是异步方式的,并没有改变成同步执行模式,只不过让代码写起来读起来像是同步执行一样。

在node.js中,回调函数的多重嵌套可能会导致代码难以维护。因此,我们借助Promise来封装异步函数,
使用统一的链式API来避免函数不断的嵌套匿名函数,脱离这多重回调的麻烦,使代码可读性更强。

简单来说,Promise就是把函数的嵌套改成了并列,使其代码更友好。

Promise对象一般有三种状态:Pending(未完成),Fulfilled(操作成功),Rejected(操作失败)

function pick(){
    var p=new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('挑拣完成',new Date());
            resolve();
        },500);
    });
    return p;
}

function groundMouth(){
    var p=new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('磨口完成',new Date());
            resolve();
        },400);
    });
    return p;
}

function blow(){
    var p=new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('吹气完成',new Date());
            resolve();
        },300);
    });
    return p;
}

function PEbag(){
    var p=new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('已套PE袋',new Date());
            resolve();
        },200);
    });
    return p;
}

function pack(){
    var p=new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log('装箱结束',new Date());
            resolve();
        },100);
    });
    return p;
}

pick()
.then(function(data){
    return groundMouth();
})
.then(function(data){
    return blow();
})
.then(function(data){
    return PEbag();
})
.then(function(data){
    return pack();
})

posted @ 2022-06-21 14:14  盘思动  阅读(436)  评论(0编辑  收藏  举报