Skip to content

Instantly share code, notes, and snippets.

@HDDen
Last active March 20, 2024 08:12
Show Gist options
  • Select an option

  • Save HDDen/f8adb37c7f4470515742e828024a880a to your computer and use it in GitHub Desktop.

Select an option

Save HDDen/f8adb37c7f4470515742e828024a880a to your computer and use it in GitHub Desktop.
Promise template
function aaa(){
return new Promise(function (resolve, reject) {
var obj = new Object();
if (1 === 1){
resolve(obj);
} else {
reject(obj);
}
});
}
/**
* Последовательный перебор цикла, выполнение дальнейшего кода после прохода всех элементов
*/
var event = {
'detail': {
'inputs': [
{'foo': 'bar'},
{'foo2': 'bar2'},
{'foo3': 'bar3'},
{'foo4': 'bar4'},
]
}
};
var promises = event.detail.inputs.map(function(el){
return el;
});
Promise.all(promises).then(function(values){
console.log(values);
});
/**
* То же, но уже с неопределённым ожиданием (например - запрос данных из внешнего источника)
*/
var event = {
'detail': {
'inputs': [
{'foo': 'bar'},
{'foo2': 'bar2'},
{'foo3': 'bar3'},
{'foo4': 'bar4'},
]
}
};
var promises = event.detail.inputs.map(function(el){
return new Promise(function(resolve, reject){
var timeout = Math.random() * 1000;
setTimeout(() => {
resolve(el);
}, timeout);
});
});
Promise.all(promises).then(function(values){
console.log(values);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment