I am new to promises. I have looked up examples of executing promises in order, but I haven't found an example that is similar to my application.
My problem is that I want to resolve promises in a certain order, but also capture all the results when the promises resolve. From looking up examples. I have created a simplified version of the problem.
I was able to create a function doWork(), but the problem is that all it does is resolve promises in order, without capturing results.
Ideally, I want a function that returns a promise which resolves with all the results.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<script>
function getRandomInterval(min, max){
var random = Math.random() * (+max - +min) + +min;
return random;
}
function createPromiseReturningFn(input){
return function(){
return new Promise(
function(resolve, reject){
setTimeout(function(){
// console.log(input);
resolve(input);
}, getRandomInterval(0, 100));
}
);
}
}
var promises = [];
for (var i=0; i<10; i++){
promises.push(createPromiseReturningFn(i));
}
function doWork(){
if (!promises.length)
return;
var promise = promises.shift();
promise().then(
doWork
);
}
doWork();
</script>
</head>
<body>
</body>
</html>