最新回答 / 董曼巴
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
最赞回答 / 慕粉1709195557
promise是用来解决异步函数的顺序问题. 比如,有两个回调函数,你怎么让他们能够按照你所书写的顺序进行执行.要知道,虽然是先后书写的函数,但是返回所需要的时间是不一致的.所以会产生混乱.
2018-07-15
最新回答 / 慕沐750848
第一种:throw用来抛出问题,抛出问题后,接下来会执行.then里的内容。即返回了一个promise实例,但是,在执行这个实例的过程中,会不会有错误呢?那就要用到catch来捕捉,但是因为是异步的,系统认为我返回了一个结果(有还是没有错误,错误在哪),所有的事都做完了。 第二种:那么如何来让系统真正的执行所有的事呢,那要在实例中再抛出一个问题,这时系统会跳过then,直接执行catch。
2018-07-13