И в
последнем варианте мне не нравится один момент.
В теле "цикла" приходится добавлять return в двух местах. Кажется, не очевидно, для чего это делается. Меня, как JSера с 2-хмесячным стажем, еще месяц назад это ввело бы в ступор.
whilePromise(
isNeedContinue.bind(null, obj),
function() {
*!*return*/!* doAnything()
.then(function() {
console.log("Что-то еще в цикле...");
*!*return*/!* Promise.resolve(obj);
}, Promise.reject.bind(Promise))
}
)
Или я зря страдаю?