Яваскрипт Обещание node.js?

Я новичок в node.js и пытаюсь понять, как я могу организовать некоторую логику так, как это нравится ноду.

У меня есть набор сред ['stage', 'prod'] и другой набор параметров, называемых брендами ['A', 'B', 'C'] и набор устройств ['phone', 'tablet'] ,

В мире, управляемом обратным вызовом узла, у меня есть это:

brands.forEach( function(brand) {
    devices.forEach( function(device) {
        var tapeS = getTape('stage',brand,device); // bad example...tapeS never set
        var tapeP = getTape('prod' ,brand,device);
    })
} )
// more stuff here
function getTape(env,brand,device) {
   var req = http.request(someOptions,function(resp) {
       // ok, so we handle the response here, but how do I sequence this with all the other
       // responses, also happening asynchronously?
   });
}

Я пытаюсь построить отчет с блоками для каждой среды:

A:
    Stage -- report
    Prod  -- report 
B:    ...

Моя проблема в том, что, поскольку все здесь так асинхронно, особенно внутри getTape, который вызывает http.request узла. Как я могу сериализовать все в конце всего этого асинхронного чуда, чтобы я мог создать отчет в нужном мне порядке?

Я слышал что-то о обещаниях JavaScript. Поможет ли это, то есть каким-то образом собрать все эти Обещания, затем подождать, пока они все завершат, и получить полученные данные?

Ответы на вопрос(5)

Ваш ответ на вопрос