【问题标题】:Problem using $.when() with post actions将 $.when() 与发布操作一起使用时出现问题
【发布时间】:2011-09-02 14:31:54
【问题描述】:

when().then() 模式在以下情况下:

$.when(setServerValue("true"))
    .then(function(){
        console.log('done setting new value');
        performSomeOperation();
    })
    .fail(function(){
        alert('server value not set!');
    });

var setServerValue = function(newValue){
    return $.post('http://myURL',{key:newValue});
};

这里的问题是'then' 或'fail' 操作永远不会使用 $.post() 操作来调用。我已经成功地将这种方法用于 $.get() 操作,如果我正确理解 API 文档(显然不是),这也应该适用于 $.post 操作。

谁能帮我解决这个问题?谢谢!

【问题讨论】:

  • 我认为setServerValue() 在调用$.when() 时不在范围内(因为提升不适用于函数表达式IIRC)。您可以尝试将其定义为function setServerValue(newValue) { ... },看看它是否能解决您的问题?

标签: jquery jquery-1.5


【解决方案1】:

问题是 setServerValue 在调用时没有定义为函数。将 setServerValue 的定义移到 $.when 调用之上。

工作示例:http://jsfiddle.net/petersendidit/JHkKG/

【讨论】:

  • 哇,这么简单但有效的解决方案。当我有机会时,我会用我的开发代码进行尝试。至少 jsfiddle 有效,这意味着我正确理解了 api 文档.. :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2023-04-07
  • 2010-10-26
相关资源
最近更新 更多