var saveDiagram = function(mainPanel) 
{
Ext.Ajax.request({
url : 'servlet/SaveFileServlet',
method : 'POST',
scope:mainPanel,
params : {
projectName:projectName,
fileName : fileName,
contents:xmlData
},
success : function(response, options) 
{
//怎么写
},
failure : function(response)
{
alert("连接服务器失败!");
}
});
};
调用saveDiagram函数,请问如何让调用者知道request是否执行成功那?

解决方案 »

  1.   

    1 ,在saveDiagram函数外部定义一个callback函数,不让调用者去等待执行结果,而是saveDiagram中执行完毕后去向调用者通知结果success : function(response, options)  
    {
        if(response.result == '我想要的') {
            callback(); 让被调用者去通知调用者
        }
    },2 设定一个通讯状态httpstatus,调用者调用   saveDiagram 完毕后,就定时去查询httpstatus, 而 saveDiagram则在通讯完毕后设定httpstatus这个状态1 ,在saveDiagram函数外部定义一个callback函数,不让调用者去等待执行结果,而是saveDiagram中执行完毕后去向调用者通知结果success : function(response, options)  
    {
        httpstaus = response; // 仅设定状态,什么都不干
    },
      

  2.   

    在saveDiagram函数中你返回一个值比如成功为true失败为false,然后再success中把那个值取出来比较,如果返回的true就成功,失败就false!
      

  3.   


    success : function(response, options)   
    {
      if(response.result.message == 'succ') {
         alert("success");
      }
    }2楼说的差不多了,后台返回一个变量 message 标示是否成功,在前台判断是否是成功的那个字符串
      

  4.   

    开始我的目标是调用就得到执行结果。后来一想,request是个异步的。不可能立刻返回执行结果的。
    方法应该就是1楼所言的,利用回调函数通知,或者定时查询。有些类似与系统的工作原理。是这样么?