zoukankan      html  css  js  c++  java
  • [Ramda] Convert a Promise.all Result to an Object with Ramda's zip and zipObj

    In this lesson, we'll use Promise.all to get an array that contains the resolved values from multiple promises. Then we'll see how we can use Ramda to convert that array of values into a single object using zip with fromPairs. Then we'll refactor to use zipObj.

    const R = require('ramda');
    
    const {fromPairs, zip, zipObj} = R;
    
    const getName = () => Promise.resolve('wan');
    const getHobbies = () => new Promise((res, rej) => {
        "use strict";
        setTimeout(() => res(['basketball', 'skiing']));
    });
    
    Promise.all([getName(), getHobbies()])
    //    .then(console.log); // [ 'wan', [ 'basketball', 'skiing' ] ]
    
    // Make it as object style
    Promise.all([getName(), getHobbies()])
        .then(([name, hobbies]) => ({name, hobbies}))
    //    .then(console.log); // { name: 'wan', hobbies: [ 'basketball', 'skiing' ] }
    
    // Using zip & fromPairs
    Promise.all([getName(), getHobbies()])
        .then(zip(['name', 'hobbies'])) // [ [ 'name', 'wan' ], [ 'hobbies', [ 'basketball', 'skiing' ] ] ]
        .then(fromPairs) // { name: 'wan', hobbies: [ 'basketball', 'skiing' ] }
    //    .then(console.log);
    
    
    // zipOjb == zip + fromPairs
    Promise.all([getName(), getHobbies()])
        .then(zipObj(['name', 'hobbies']))
        .then(console.log) // { name: 'wan', hobbies: [ 'basketball', 'skiing' ] }
  • 相关阅读:
    fabric-byfn.sh名利解析
    Hyperledger Fabric--byfn.sh 命令分析
    ubuntu修改网络地址
    docker常用命令
    添加daocloud加速器-18.04.2-Ubuntu
    CA/RA简介
    Redhat防火墙
    Linux上Oracle 11g启动与关闭
    redhat网络配置文件详解
    uva1349Optimal Bus Route Design
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6544402.html
Copyright © 2011-2022 走看看