Является ли .then(function(a){ return a; }) недопустимым для промисов?
В сфере промисов , возник вопрос о том, является ли .then(function(a){ return a; }) никакой операцией. Давайте прольем свет на этот любопытный запрос:
Да, обычно это пустая операция.
Рассматриваемый код получает возвращаемое значение предыдущего обещания в цепочку через функцию, переданную в .then(). Однако если эта функция просто возвращает входные данные a, она фактически обходит любую обработку или преобразование результата обещания. Это делает его безобидным, но ненужным дополнительным шагом в конвейере обещаний.
Почему это было написано именно так?
Вероятно, это опечатка или пережиток более ранних заблуждений о обещает. Когда были введены промисы, некоторые разработчики ошибочно полагали, что .then() необходимо вернуть обещание, чтобы продолжить цепочку. В результате они добавили этот лишний вызов .then(), чтобы гарантировать, что возвращаемое значение всегда останется обещанным, даже если оно идентично входному.
Разница между возвратом .then() и Пропуск
Хотя это семантически эквивалентно, существуют тонкие различия между возвратом .then() и пропуском it:
Краевые случаи
В редких ситуациях .then(function(a){ return a; }) может имеют необычное поведение:
Вывод
В общем, .then(function(a){ return a; }) — нет -op, который не добавляет никакой ценности в цепочку обещаний. Его следует опускать, если только нет веских причин для его использования, например, для предотвращения общих обещаний или обработки неясного поведения, связанного с thenable.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3