最新回答 / 董曼巴
3.3错误处理一节,课程里讲的不对。 计时器里抛出的异常并不能被catch 捕获到。
new Promise((resolve,reject)=&来。 { setTimeout(()=&ye"{ //此处抛出的异常是因为没有被捕获所以会在控...
2018-11-23
最新回答 / itachy
我觉得这里你需要再听一下老师的解释!个人理解: funa与 funb都是函数调用,因此几乎是同时执行的,这里你或许不理解为什么不是先then了在执行?主要是因为premise语法要求,因为then的参数是premise,这个then会被忽略【此处老师也有解释】,所以可以理解funa与funb几乎是一起执行的【当然是有先后的,只是差不多可以忽略了】。 最后解释下,为啥返回的premise是a, 有上面的解释可以知道then被忽略了,返回值就是funa返回的premise,答案也正如老师所...
2018-10-11
最赞回答 / 慕瓜6203314
then确实会返回一个promise,但是如果不手动return Promise,那么默认返回的promise状态就是resolved,值看你return的是啥了,不写return的话,值是undefined,return非promise,那么值就是这个非promise。而手动return Promise,那返回的promise状态就不一定是resolved了,因此就可以改变下一个then/catch调用的结果了。
2018-08-11
已采纳回答 / 857647010
异常第一次被捕获,就不会再被捕获了,类似Java机制new Promise((resolve, reject) => {setTimeout(() => { reject('bye') }, 2000)}).then(value => { console.log(value); },error => {console.log("error:" + error)}).catch(error => { console.log("catch:" + error); })
2018-07-15
最赞回答 / 慕粉1709195557
promise是用来解决异步函数的顺序问题. 比如,有两个回调函数,你怎么让他们能够按照你所书写的顺序进行执行.要知道,虽然是先后书写的函数,但是返回所需要的时间是不一致的.所以会产生混乱.
2018-07-15