Promise学习

简述:

      构造,两个函数 包含一个参数,一个带有 resolve(解析)和 reject(拒绝)两个参数的回调

       成功:resolve调用第一个函数

       失败:reject调用第二个函数

        then:处理调用结果,分别两个函数

          promise.then(onFulfilled, onRejected)

     promise.then(onFulfilled).catch(onRejected)

Promise 构造成一个异步回调操作

构造:

let k = 1;
const p = new Promise(function(resolve,reject)
{
    console.log("begin",k++);
    setTimeout(() => {
        if(k < 2)
        {
            console.log("resolve",k++);
            resolve(k);
        }
        else{
            console.log("reject",k++);
            reject(k);
        }
    },1);
    console.log("Behind",k++);
});

p.then(
 function(value){console.log("value",value++);},
 function(err){console.log("err",err++);}
);

begin 1
Behind 2
reject 3
err 4

经典的链式回调

const p = new Promise(function(resolve,reject){

    resolve(1);

  }).then(function(value){ // 第一个then // 1

    console.log(value);

    return value * 2;

  }).then(function(value){ // 第二个then // 2

    console.log(value);

  }).then(function(value){ // 第三个then // undefined

    console.log(value);

    return Promise.resolve('resolve');

  }).then(function(value){ // 第四个then // resolve

    console.log(value);

    return Promise.reject('reject');

  }).then(function(value){ // 第五个then //reject:reject

    console.log('resolve:' + value);

  }, function(err) {

    console.log('reject:' + err);

  });


1
2
undefined
resolve
reject:reject
const p = new Promise(function(resolve,reject)
{
    reject("ABC");
});

p.then(function(value){console.log("AAA",value)}).catch(function(err){console.log("BBB",err)});
p.then(function(value){console.log("AAA",value)},function(err){console.log("BBB",err)});

BBB ABC
BBB ABC

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值