process.stdin.resume();
process.stdin.setEncoding('utf8');
function Main() {
var allNumbers = [];
for (var i = 1; i < 100; i++) {
allNumbers.push(GenerateSignalPromise(i));
}
var currentSignal = _stackPop(allNumbers);
// while (currentSignal) {
// currentSignal.then(function (signal) {
// console.log(signal);
// currentSignal = _stackPop(allNumbers);
// }).catch(function (err) {
// console.log("Runtime Error!");
// console.log("Description:");
// console.log(err);
// });
// }
(function loop() {
if (currentSignal) {
currentSignal.then(function (signal) {
console.log(signal);
currentSignal = _stackPop(allNumbers);
loop();
}).catch(function (err) {
console.log("Runtime Error!");
console.log("Description:");
console.log(err);
});
}
})();
}
function GenerateSignalPromise(number) {
return new Promise(function (resolve, reject) {
var types = {
3: "Fizz",
5: "Buzz"
};
var fullSignal = "";
for (type in types) {
if (_checkingNum(number, type)) {
fullSignal += types[type];
}
}
resolve(fullSignal || number);
});
}
function _stackPop(stack) {
if (stack.length) {
return stack.shift();
}
else {
return null;
}
}
function _checkingNum(number, divider) {
return number % divider == 0;
}
Main();