将回调函数作为参数从其自身传递

时间:2014-02-26 03:30:22

标签: javascript callback

我是否可以将回调参数从回调函数块本身传递给另一个方法?例如:

var resultCallback = function(result){
   if(result)
   {
       alert('success!');
   }else{
       callServiceB(resultCallback );
   }
}

callServiceA(resultCallback);

这样做的原因是我希望在javascript中运用类似责任链模式。

尝试用谷歌搜索,但到目前为止什么也没得到。欢迎任何想法或评论。

1 个答案:

答案 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);