Показать сообщение отдельно
  #16 (permalink)  
Старый 13.07.2017, 14:00
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,010

SergeyERjs,
зря страдаешь.

"return в двух местах" - это когда в пределах одной функции. Бытует мнение, что это антипаттерн. Хотя нельзя сказать наверняка. (с)

У тебя ретурны в разных функциях, только не обязательно делать return Promise.resolve(obj);, достаточно просто return obj;

Promise.reject.bind(Promise) вообще ни к селу ни к городу. Как ты это придумал, ума не приложу. Наверняка читал говностатейки по программированию на каком-нибудь говносайтишке.

https://learn.javascript.ru/ - здесь и только здесь надо начинать постигать.

Правильный вариант:
whilePromise(
	isNeedContinue.bind(null, obj),
	function() {
		return doAnything()
			.then(function(data) {
				console.log("Что-то еще в цикле...");
				return data;
			});
	}
)

Тут просто передаем то значение data, которое получили в промисе doAnything(). А вот если надо будет воткнуть что-то асинхронное между итерациями, тогда возвращаем промис.
Ответить с цитированием