开发者社区> 问答> 正文

关于es6中Promise运行的一个报错??报错

代码如下:

function getNumber(){
            var p = new Promise(function(resolve, reject){
                //做一些异步操作
                setTimeout(function(){
                    var num = Math.ceil(Math.random()*10); //生成1-10的随机数
                    if(num<=5){
                        resolve(num);
                    }
                    else{
                        reject('数字太大了');
                    }
                }, 200);
            });
            return p;            
        }

        getNumber()
        .then(
            function(data){
                console.log('resolved');
                console.log(data);
                return getNumber();
            }, 
            function(reason, data){
                console.log('rejected');
                console.log(reason);
                return getNumber();
            }
        )
        .then(
            function(data){
                console.log('resolved');
                console.log(data);
                return getNumber();
            }, 
            function(reason, data){
                console.log('rejected');
                console.log(reason);
                return getNumber();
            }
        )



多刷新几次,就会报下面错误,求解释:

展开
收起
爱吃鱼的程序员 2020-06-08 20:53:26 510 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    第二个then里又return了getNumber(),里面的reject没处理明白了,谢啦~<atarget='_blank'>@vcxiaohan回复<aclass='referer'target='_blank'>@vcxiaohan:因为你没有继续then啊..回复<aclass='referer'target='_blank'>@wuyiw:请问是怎么看出来第2个then的reject没有处理的?<atarget='_blank'>@vcxiaohan回复<aclass='referer'target='_blank'>@vcxiaohan:resolve没处理没关系<atarget='_blank'>@554330833a回复<aclass='referer'target='_blank'>@554330833a:<arel='nofollow'target='_blank'>http://caniuse.com/#search=promise

    一楼正解,你可以在最后加个.catch(function)


    2020-06-08 20:53:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载