Ошибка при превышении максимального размера стека вызовов при нажатии кнопки "Оформить заказ"


Когда я пытаюсь разместить заказ, я получаю сообщение об ошибке, например RangeError: Maximum call stack size exceeded при оформлении заказа на одной странице нажмите кнопку оформить заказ

Pre Conditions

1) Расширение для проверки на одну страницу (https://marketplace.magento.com/espl-onepagecheckout.html)

2) Расширение полосы Webkul (https://store .webkul.com/magento2-marketplace-stripe-vendor-payment.html)

Также появляется та же ошибка после отключения проверки одной страницы ESPL расширение

    Uncaught RangeError: Maximum call stack size exceeded
    at Function.Sizzle [as find] (184add52e34e0cecaf06d4f72a2a5050.min.js:247)
    at jQuery.fn.init.find (184add52e34e0cecaf06d4f72a2a5050.min.js:381)
    at jQuery.fn.init (184add52e34e0cecaf06d4f72a2a5050.min.js:387)
    at new jQuery.fn.init (eval at require.load (184add52e34e0cecaf06d4f72a2a5050.min.js:175), <anonymous>:29:16)
    at jQuery (184add52e34e0cecaf06d4f72a2a5050.min.js:206)
    at UiClass.getData (eval at require.load (184add52e34e0cecaf06d4f72a2a5050.min.js:175), <anonymous>:13:1)
    at UiClass.address [as selectPaymentMethod] (eval at require.load (184add52e34e0cecaf06d4f72a2a5050.min.js:175), <anonymous>:9:218)
    at HTMLInputElement.eval (eval at require.load (184add52e34e0cecaf06d4f72a2a5050.min.js:175), <anonymous>:360:164)
    at HTMLInputElement.dispatch (184add52e34e0cecaf06d4f72a2a5050.min.js:499)
    at HTMLInputElement.elemData.handle (184add52e34e0cecaf06d4f72a2a5050.min.js:472)

enter image description here Я также проверил папку var/log, но не выяснил, почему возникает эта ошибка

Пожалуйста, дайте мне какое-либо решение, если кто-нибудь сталкивался/знал об этой проблеме.

Заранее благодарю.

Author: Hitesh, 2018-11-03

2 answers

Эта ошибка обычно возникает из-за бесконечной рекурсии:

Бесконечная рекурсия - это частный случай бесконечного цикла, вызванного рекурсией.

В этом посте подробно описано, что вам следует делать.

Https://stackoverflow.com/questions/6095530/maximum-call-stack-size-exceeded-error

Вы также должны изучить это также с того же поста;

Иногда вы можете получить это, если случайно импортируете/вставляете то же самое Файл JS дважды, стоит проверить на вкладке "Ресурсы" инспектора :)

 1
Author: Vivek Kumar, 2018-11-12 15:11:29

Эта ошибка почти всегда означает, что у вас проблема с рекурсией в коде JavaScript, так как в JavaScript нет другого способа использовать много стека. Иногда повторный вызов рекурсивной функции приводит к тому, что браузер отправляет вам сообщение об ошибке с превышением максимального размера стека вызовов , так как объем памяти, который может быть выделен для вашего использования, не ограничен.

Будьте внимательны при вызове функций, также рекомендуется выполнять пробный запуск, чтобы предотвратить их. Это возможно также вызвать бесконечную рекурсию в полностью обещанном коде. Это может произойти, если обещания в цепочке фактически не выполняют никакого асинхронного выполнения, и в этом случае управление никогда не возвращается в цикл событий, даже если код в противном случае выглядит асинхронным. Вот когда полезно обернуть вызов рекурсивной функции в -

setTimeout
setImmediate or
process.nextTick

В некоторых языках программирования это можно решить с помощью оптимизации хвостового вызова, где рекурсивный вызов преобразуется в капот в петлю, поэтому ошибка достижения максимального размера стека отсутствует.

 0
Author: rahul kumar, 2020-08-19 05:05:47