我有一个需要执行的日志方法,直到 ajax 方法:getUserIP 获取值。getUserIP 将在 $document.ready() 方法中运行,在其成功方法中,它将运行另一个名为 getsas 方法的 ajax 方法。像这样的代码:
var userIP,sasToken,isReady;
$(document).ready(function ( ) {
getUserIP();
});
function getUserIP() {
if (!userIP) {
$.ajax({
type: "GET",
url: "http://jsonip.com?callback=?",
dataType: "jsonp",
jsonp: "callback",
jsonCallback: "jsonCallBack",
success: function (data) {
callback(data);
getSASEveryMinute();
}
});
}
}
//Handle the response data from jsonip and SASTokenService.svc
//save them in globle varible
function callback(data) {
if (data.ip)
userIP = data.ip
else {
sasToken = data.sasToken;
isReady = true;
}
}
function getSASEveryMinute() {
url = "http://asdfasdf/TokenService.svc/json/Logs/" + userIP;
getSAS();
function getSAS() {
$.ajax({
url: url,
type: 'GET',
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonCallback",
success: function (data) {
callback(data);
}
});
}
setInterval(function () {
getSAS();
}, 60000);
}
function insertEntity(entity) {
if (isReady) {
entity.PartitionKey = userIP;
insert(entity);
}
else {
setTimeout(function () { insertEntity(entity) }, 2000);
}
那我们有没有更好的办法
setTimeout(function () { insertEntity(entity) }, 2000);
非常感谢!