javascript - 如何知道promise的catch没写?
phpcn_u1582
phpcn_u1582 2017-05-19 10:41:01
0
1
506
function p(){
    return new Promise((resolve, reject) => {
        reject();
    });
}

p().then(()=>{
    console.log(1);
})

重新编辑了下问题, 就是想问p()的.catch()我不写, 函数p内部要如何写浏览器才能不报错

phpcn_u1582
phpcn_u1582

全部回复(1)
Ty80

两个问题:
1.return 不是 retrun
2.new Promise后需要加一个括号

故原代码如下

var x = 10;
function p() {
    return new Promise((resolve, reject)=>{
        if(1 < x) {
            resolve();
        }
        if(5 < x) {
            reject();
        }
    });
}
p().then(() => {
    alert(1)
})

这样调用不会出问题, 另外1<x 过后又去判断 5<x, 后面那个if完全没必要, 不会执行的. 原因是promise的状态只能改变一次.第二次改变不会有效的.
即使是reject()执行了,promise的抛错也是promise的事,与P函数无关,promise的抛错只能在promise后面加catch语句捕获.由于p函数返回了new出来的promise,故在p函数执行结果后面加catch语句即可.
推荐看下这篇文章: Promise使用手册

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!