从其中调用另一个函数时,函数是否停止处理?

问题描述:

查看CFC中的以下函数(我正在使用ColdFusion 9)。从其中调用另一个函数时,函数是否停止处理?

假设oldObject is trueit is type 1,确实的ColdFusion继续,直到函数的末尾,并创建新的对象,或者它“胸围出”上<cfset respond(result=false)>和在功能中止任何进一步的处理?

<cffunction name="myFunction" access="private"> 

    <cfargument name="key"> 

    <cfset oldObj = model("myModel").findOne(arguments.key)> 
    <cfset local.data = 1> 

    <cfif isObject(oldObj)> 

     <cfif oldObj IS 1> 
     <cfset respond(result=false)> 
     <cfelse> 
     <cfset local.data = 2> 
     </cfif> 

    </cfif> 

    <cfset newObj.new(local.data)> 

<cffunction> 

的想法是这样的:

  1. 如果oldObject(1)存在和(2)为1型,出局并没有做任何事情。
  2. 如果oldObject存在且不是类型1,则修改local.data并创建新对象。
  3. 如果oldObject不存在,只需创建未修改的新对象local.data

respond()函数只是通过JSON结构向用户返回数据。我省略了很多代码,因为这是一个理论问题。

你的算法继续到函数的结尾。只有一个<cfreturn>会在结束之前退出该功能。所以<cfset newObj.new(local.data)>总是会到达。

要输出JSON内联(即<cfoutput>#json#</cfoutput>。),请确保respond()未指定<cffunction name="respond" output="false" ...>

请注意,假设这些函数驻留的较大对象是有状态的,则更简洁的方法是根据需要调用客户端方法。让对象内部将响应作为其状态的一部分进行拼凑。最后,客户端沿着getResponse()函数的行呼叫。