JavaScript-promise函数
promise参考资料:
http://www.cnblogs.com/lvdabao/p/es6-promise-1.html
promise是一个构造函数,自身有reject、resolve、race方法,原型链上有then、catch方法。用new出来一个promise对象会自带这些方法。
知识点一:new promise对象
要点:在这里只是new了一个对象,并没有调用它,我们传进去的函数就已经执行了,这是需要注意的一个细节。所以我们用Promise的时候一般是包在一个函数中,在需要的时候去运行这个函数,见下图:
知识点二:then方法
then可以接收两个参数,是函数(即resolve和reject方法),并且会拿到我们在f中调用resolve、reject时传的的参数。----在这里resolve、reject相当于回调函数。
下面在f函数里没有return p对象出错,上面有返回p对象,即返回了resolve、reject的参数。执行成功的情况对应返回resolve参数,执行失败的情况对应返回reject参数。
知识点三:catch方法
catch方法,它是做什么用的呢?其实它和then的第二个参数一样,用来指定reject的回调
效果和写在then的第二个参数里面一样。不过它还有另外一个作用:在执行resolve的回调(也就是上面then中的第一个参数)时,如果抛出异常了(代码出错了),那么并不会报错卡死js,而是会进到这个catch方法中。