doSomething.then(function(){ return doSomethingElse(); }).then(/…/)
doSomething.then(function(){ doSomethingElse(); }).then(/…/)
doSomething.then(doSomethingElse()) .then(/…/)
doSomething().then(doSomethingElse) .then(/…/) doSomething & doSomethingElse both promise object
@booxood 主要是里面给的结果没怎么看懂。
@booxood 好赞的一篇文章
初步来看 1,2,4的效果应该一样吧,3的写法有问题,2个promise实例直接执行了。
@zhangking5202有问题,会导致最后的then跟doSomethingElse同时执行。其它是一样的。3执行后返回promise对象,其实跟4是一样的。 楼主代码没抄好。看得我一头烟。doSomeThing后面要有括号,不然是要报错的
2有问题
@klesh 写的时候没注意,见谅哈
补充一下:1,3,4执行顺序是一样的,其中,1跟4是完全等效。3的 doSomethingElse() 相当于一个子操作,虽然上层的下一个 then 会等到它执行完毕再继续,但不影响上层链的结果传递,也无法将值传到上层的下一个 then。
@klesh 说的没错,2没有返回值的确有问题,无法向下传递,2,3都是错误的写法。