Яваскрипт Обещание 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. Поможет ли это, то есть каким-то образом собрать все эти Обещания, затем подождать, пока они все завершат, и получить полученные данные?