收藏
回答

小程序 IOS报错 maximum call stack size exceeded?

将图片转成base64发请求传到后台,只有某张图片(命名123.jpg,大小三百多kb)且IOS发请求之前(还未发请求),前端页面报错了,安卓传这张图片都成功了。发请求接口引用了crypto.js组件。

其他任意图片、或其他任一图片+该图片,都能上传成功到后台。

代码没有运用递归函数、也传过大小超过三百多kb的照片都能成功,只有IOS传这张图片的时候前端会报错,很玄幻啊,麻烦求大神帮忙分析一下

回答关注问题邀请回答
收藏

5 个回答

  • Stobbon
    Stobbon
    2022-08-01

    所以这个问题 有大佬解决了吗

    2022-08-01
    有用
    回复
  • 一郭炖不下
    一郭炖不下
    2022-04-15

    遇到了同样的问题请问有解决方案么?

    2022-04-15
    有用
    回复
  • LeeaYoung
    LeeaYoung
    2021-07-22
    • 以上错误的意思是 "超出最大调用堆栈大小"
    • 出现这种错误最常见的原因是:在代码中的某个地方,您正在调用一个函数,该函数又调用另一个函数,依此类推,直到达到调用堆栈限制。这几乎总是因为具有未满足的基本情况的递归函数


    举例:

    (function a() {
        a();
    })();
    

    调用堆栈会一直增长,直到达到限制:浏览器硬编码堆栈大小或内存耗尽。为了解决这个问题,请确保您的递归函数具有能够满足的基本情况 

    (function a(x) {
        if ( ! x) {
            return;
        }
        a(--x);
    })(10);
    

    有了停止调用的判断条件,就不会有堆栈溢出了

    2021-07-22
    有用
    回复
  • 依然
    依然
    2021-07-21

    贴代码呀

    2021-07-21
    有用
    回复
  • 北望沣渭
    北望沣渭
    2021-07-21

    It means that somewhere in your code, you are calling a function which in turn calls another function and so forth, until you hit the call stack limit.


    This is almost always because of a recursive function with a base case that isn't being met.


    Viewing the stack

    Consider this code...

    (function a() {
        a();
    })();
    

    Here is the stack after a handful of calls...

    As you can see, the call stack grows until it hits a limit: the browser hardcoded stack size or memory exhaustion.

    In order to fix it, ensure that your recursive function has a base case which is able to be met...

    (function a(x) {
        // The following condition 
        // is the base case.
        if ( ! x) {
            return;
        }
        a(--x);
    })(10);
    


    2021-07-21
    有用
    回复
登录 后发表内容