カバーです。あくまでネタです。
var data = [5, 3, 6, 3, 6, 3, 1, 4, 7];
var sleepSort = function(arr){
return new Promise(function(resolve,reject){
var result = [];
arr.forEach(function(d){
setTimeout(function(){
result.push(d);
if(result.length === data.length) resolve(result);
},d);
});
});
}
sleepSort(data).then(function(d){console.log(d)});
// [1, 3, 3, 3, 4, 5, 6, 6, 7]
...だからネタだってば。
追記。やっぱ素のJSだと気持ち悪いので一応TypeScriptでも書いておく。
コンパイル結果はほぼ同一だけど、慣れてしまうとこっちの方が書いてて安心感ある。
let data: number[] = [5, 3, 6, 3, 6, 3, 1, 4, 7];
let sleepSort = (arr: number[]) =>
new Promise( (resolve, reject) => {
let result: number[] = [];
arr.forEach( (d: number) => {
setTimeout( () => {
result.push(d);
if(result.length === data.length) resolve(result);
},d);
});
});
sleepSort(data)
.then((d) => console.log(d));