84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
function p(){ return new Promise((resolve, reject) => { reject(); }); } p().then(()=>{ console.log(1); })
重新编辑了下问题, 就是想问p()的.catch()我不写, 函数p内部要如何写浏览器才能不报错
两个问题:1.return 不是 retrun2.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使用手册
两个问题:
1.return 不是 retrun
2.new Promise后需要加一个括号
故原代码如下
这样调用不会出问题, 另外1<x 过后又去判断 5<x, 后面那个if完全没必要, 不会执行的. 原因是promise的状态只能改变一次.第二次改变不会有效的.
即使是reject()执行了,promise的抛错也是promise的事,与P函数无关,promise的抛错只能在promise后面加catch语句捕获.由于p函数返回了new出来的promise,故在p函数执行结果后面加catch语句即可.
推荐看下这篇文章: Promise使用手册