jquery defer在调用.done之前没有等待
jquery defer not waiting before calling .done
我使用defer的.done来等待在函数完成之前加载cookie。当我尝试运行代码时,它会完成并返回undefined。看起来.done在第一个代码完成之前就已经启动了。
function getCookie(cookieName){
var value;
var defer = new jQuery.Deferred();
fetchCookie().done(
function(){
return value;
}
);
function fetchCookie(){
chrome.cookies.get(
{
'url':'https://addictedtogether.com/',
'name':cookieName
},
function(data){
console.log(data);
value=data.value;
}
);
return defer.promise();
}
}
//usage
var username=getCookie('username');
延迟对象不会让您避免回调。你仍然需要做这样的事情(假设一切都实现正确(:
getCookie('username').then(function(username){
console.log(username);
});
它只会产生不必要的开销。我宁愿简单地做:
function getCookie(cookieName, callback){
chrome.cookies.get(
{
'url':'https://addictedtogether.com/',
'name':cookieName
},
function(data){
console.log(data);
value=data.value;
if(callback) {
callback(value);
}
}
);
}
//usage
getCookie('username', function(username){
console.log(username);
});
相关文章:
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 在等待异步任务时永久循环
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 等待循环调用的所有承诺完成
- 等待回调函数执行
- RxJS等待承诺解决
- WIll window.addEventListener(“加载”,function(),false);等待浏览器自动填
- Casperjs等待资源
- 在返回结果之前,我如何等待 jQuery.ajaxComplete in promise.done
- 在循环的每次迭代中等待async .done()
- jquery defer在调用.done之前没有等待
- 运行2个promise并等待"done()"
- jQuery promise .done()会立即触发,而不是等待服务器返回