Вызовите функцию для каждого объекта в массиве в узле - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь собрать вместе обновление базы данных, чтобы заново заполнить коллекцию монго. Я создал объект для хранения свойств, необходимых для поиска данных из внешнего источника, а затем добавил их обратно в коллекцию MongoDb.

Массив выглядит так:

const pops = [ 
    { table: 'SFAccounts',
      label: 'Account__c', 
      createListName: 'Accounts'
    },
    { table: 'SFTimes',
      label: 'CusTime__c', 
      createListName: 'Time'
    }]

Затем я хочу создать функцию, которая принимает 'table', 'label и' createListName ', и она делает что-то вроде этого ..

async function processData(table, label, createListName) {
    // Get some info from Salesforce 
    const dataFromSF = await getMetaDataFromSalesForce(table)
    // Extract the parts I actually need
    const relevantBits = dataFromSF.filter(field => field.name === label)
    //Create a new list in the db
    const createResult = await List.create( { name: createListName, values: relevantBits } )
    return createResult
}

Конечная цель - получить что-то вроде

await Promise.all(processData(pops))

которая будет ожидать всех таблиц, извлекаемых и заполняемых в базе данных.

1 Ответ

0 голосов
/ 27 апреля 2018

Если вы измените аргументы processData:

async function processData({table, label, createListName}) {
    // Get some info from Salesforce 
    const dataFromSF = await getMetaDataFromSalesForce(table)
    // Extract the parts I actually need
    const relevantBits = dataFromSF.filter(field => field.name === label)
    //Create a new list in the db
    const createResult = await List.create( { name: createListName, values: relevantBits } )
    return createResult
}

это просто await Promise.all(pops.map(processData));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...