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);
    
  • 相关阅读:
    C语言ASM汇编内嵌语法
    Linux下安装安装arm-linux-gcc
    苹果手机(ios系统)蓝牙BLE的一些特点
    蓝牙BLE数据包格式汇总
    蓝牙BLE4.0的LL层数据和L2CAP层数据的区分与理解
    nrf52840蓝牙BLE5.0空中数据解析
    nrf52840蓝牙BLE5.0空中速率测试(nordic对nordic)
    nrf52832协议栈S132特性记录
    使用 Open Live Writer 创建我的第一个博文
    Codeforces Round #691 (Div. 2) D
  • 原文地址:https://www.cnblogs.com/jerrypig/p/7826481.html
Copyright © 2011-2022 走看看