我是否可以将回调参数从回调函数块本身传递给另一个方法?例如:
var resultCallback = function(result){
if(result)
{
alert('success!');
}else{
callServiceB(resultCallback );
}
}
callServiceA(resultCallback);
这样做的原因是我希望在javascript中运用类似责任链模式。
尝试用谷歌搜索,但到目前为止什么也没得到。欢迎任何想法或评论。
答案 0 :(得分:0)
我是否可以将回调参数从回调函数块本身传递给另一个方法?
是的,你可以。试试吧!
我希望锻炼像责任链模式
将责任链(callServiceB(resultCallback)
)和结果操作(alert('success!')
)放在同一个函数中看起来像是一种不好的做法/设计气味。您应该对结果使用额外的回调,并将链的声明与该声明分开。
它可能看起来像callServiceA(orCallServiceB(alertResult))
或either(callServiceA, callServiceB, …)(alertResult)
。
逻辑就像1.调用函数a 2.如果函数ok,则调用函数b 3.如果函数b ok,则调用函数c,依此类推.. - ipohfly 8分钟前
这听起来不像chain of responsibility,只有在当前失败的情况下才能调用下一个函数(无法处理参数)?你所描述的听起来更像是monadic链接(一个动作依赖于前一个) - 看看promises:
callServiceA.then(callServiceB).then(…).then(resultCallback);