zoukankan      html  css  js  c++  java
  • promise体验

    promise的执行流程

    promise串行执行异步

    job1.then(job2).then(job3).catch(handleError);

    // 0.5秒后返回input*input的计算结果:
    function multiply(input) {
        return new Promise(function (resolve, reject) {
            console.log('calculating ' + input + ' x ' + input + '...');
            setTimeout(resolve, 500, input * input);
        });
    }
    // 0.5秒后返回input+input的计算结果:
    function add(input) {
        return new Promise(function (resolve, reject) {
            console.log('calculating ' + input + ' + ' + input + '...');
            setTimeout(resolve, 500, input + input);
        });
    }
    
    var p = new Promise(function (resolve, reject) {
        console.log('start new Promise...');
        resolve(123);
    });
    
    p.then(multiply)
     .then(add)
     .then(multiply)
     .then(add)
     .then(function (result) {
        console.log('Got value: ' + result);
    });
    
    

    promise并行执行异步任务(Promise.all())

    • 假设此时有任务A和任务B两个异步任务,两个任务全部执行完成之后执行任务C,此时可以使用Promise.all()实现
    var p1 = new Promise(function (resolve, reject) {
        setTimeout(resolve, 500, 'P1');
    });
    var p2 = new Promise(function (resolve, reject) {
        setTimeout(resolve, 600, 'P2');
    });
    var p3=function(res){
      console.log(res)
    }
    Promise.all([p1, p2]).then(p3);
    

    promise并行执行多个任务,但是只需要得到先返回的结果即可(Promise.race())

    • 假设此时有任务A和任务B两个异步任务,两个任务任意一个完成之后执行任务C,此时可以使用Promise.race()实现
    var p1 = new Promise(function (resolve, reject) {
        setTimeout(resolve, 500, 'P1');
    });
    var p2 = new Promise(function (resolve, reject) {
        setTimeout(resolve, 600, 'P2');
    });
    var p3=function(res){
      console.log(res)
    }
    Promise.race([p1, p2]).then(p3);
    
  • 相关阅读:
    谷歌控制台的使用
    等比例居中
    display:block、inline、inline-block的区别及应用案例
    省市县三级联动逻辑
    页面滑动至某处,固定导航。
    类加载器在Tomcat中的应用
    MySQL中一些关于索引的知识点
    Spring中AOP相关源码解析
    Spring中Bean的实例化与DI的过程
    我该如何学习spring源码以及解析bean定义的注册
  • 原文地址:https://www.cnblogs.com/jerrypig/p/7826481.html
Copyright © 2011-2022 走看看