- 主题:问个jquery的promise问题
函数a里面有resolve(b),并且 a已经被 promise封装 ,我原来考虑的是
resolve(b)这个参数b的 传递 ,我写的
a.done(c).done(d).done(f)
后来发现 b似乎只能传递一次 (为什么 ?)
然后 我硬塞了参数 b,这样
a.done(c).done(d(b)).done(f(b))
结果 调用顺序是 d、f最后才是c,
这又是怎么一回事 ?
第三小问是如何 才能实现我想要的效果 ?
--
修改:kangjian FROM 101.81.13.*
FROM 101.81.13.*
【 在 kangjian (iwilllove) 的大作中提到: 】
: 函数a里面有resolve(b),并且 a已经被 promise封装 ,我原来考虑的是
: resolve(b)这个参数b的 传递 ,我写的
: a.done(c).done(d).done(f)
: 后来发现 b似乎只能传递一次 (为什么 ?)
c did not return
: 然后 我硬塞了参数 b,这样
: a.done(c).done(d(b)).done(f(b))
: 结果 调用顺序是 d、f最后才是c,
: 这又是怎么一回事 ?
of course.
: 第三小问是如何 才能实现我想要的效果 ?
a.then(c)
a.then(d)
a.then(f)
--
FROM 183.195.251.*
【 在 XeCycle 的大作中提到: 】
:
: c did not return
:
: ...................
a.then(c)
a.then(d)
a.then(f)
能保证执行顺序是 c ->d ->f?
--
FROM 101.81.13.*
【 在 kangjian (iwilllove) 的大作中提到: 】
: a.then(c)
: a.then(d)
: a.then(f)
: 能保证执行顺序是 c ->d ->f?
no. you may want this:
function tap(fn) {
return function(v) {
return fn(v), v; // adjust if you want more arguments or preserve context
};
}
a.then(tap(c)).then(tap(d)).then(tap(f));
--
修改:XeCycle FROM 183.195.251.*
FROM 183.195.251.*
【 在 XeCycle 的大作中提到: 】
:
: no. you may want this:
: function tap(fn) {
: ...................
谢谢,我再自己想想。
--
FROM 101.81.13.*
【 在 XeCycle 的大作中提到: 】
:
: no. you may want this:
: function tap(fn) {
: ...................
这里解释了
http://stackoverflow.com/questions/28628627/chain-promises-with-then
--
FROM 69.85.87.*