【发布时间】:2018-01-22 15:35:43
【问题描述】:
我承诺如下代码。在我用参数解决了promise之后, 我想在 done() 方法中获取参数。
function splitAndSetTebiskopUrl(tebiskopUrl){
splits = tebiskopUrl.split("\u0007");
tebiskopUrl = splits[0];
var defer = $.Deferred();
if(splits[1]){
var cookieValue = splits[1];
return $.ajax({
type:'POST',
url:'xxxxxxxxxxxx',
data:{'cookieValue':cookieValue},
}).then(function(data){
if(data && data.cookieValue){
defer.resolve(tebiskopUrl);
}else{
defer.reject("cookie value doesn't exist");
}
},
function(){
defer.reject("tebiskopCookieSet request error");
});
}else{
defer.resolve(tebiskopUrl);
}
return defer.promise();
}
参数未传递给 done() 方法。不幸的是,我认为它是未定义的。我看过很多例子。但我找不到问题。
splitAndSetTebiskopUrl(url).done(function(parameter){
//parameter is undefined
});
【问题讨论】:
-
@Bergi 我还能用其他什么。你能举个例子吗? .我有两个条件。在第一个条件下,我们必须等待 ajax 结果,在第二个条件下,没有 ajax 我必须返回给定的参数。
标签: javascript jquery promise jquery-deferred