Jquery 将$.when()用于post操作时出现问题

Jquery 将$.when()用于post操作时出现问题,jquery,jquery-1.5,Jquery,Jquery 1.5,when().then()模式在以下情况下: $.when(setServerValue("true")) .then(function(){ console.log('done setting new value'); performSomeOperation(); }) .fail(function(){ alert('server value not set!'); }); var setServerValu

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});
};
这里的问题是,永远不会使用$.post()操作调用“then”或“fail”操作。我已经在$.get()操作中成功地使用了这种方法,如果我正确理解API文档(显然不是),这也适用于$.post操作


有人能帮我吗?谢谢

问题在于调用setServerValue时,它没有定义为函数。调用时,将setServerValue的定义移到$.when上方


工作示例:

我认为
setServerValue()
在调用()时不在范围内(因为提升不适用于函数表达式IIRC)。你能试着把它定义为
函数setServerValue(newValue){…}
,看看它是否能解决你的问题吗?哇,这是一个简单但有效的解决方案。如果有机会,我会用我的开发代码试试。至少JSFIDLE是有效的,这意味着我正确理解了api文档