如何使我的requestAddress函数同步运行?我应该制作这样的两个函数并使用回调吗?我该怎么做回调?我似乎无法理解如何为这种情况做到这一点。
function requestAddress(urlCombined) {
request(urlCombined, function (error, response, body) {
a = JSON.parse(body);
c = addressInfo.status;
});
}
function isValid() {
// Retrieve address from input
addressGet = $('#address').val();
// Combine url to get address's information
var urlCombined = 'websitehere' + something;
requestAddress(urlCombined);
//do something
if (condition met) {
return true;
} else {
return false;
}
}
if (isValid()) {
do something
}
答案 0 :(得分:1)
您可以向requestAddress
函数发送回调函数,并在请求完成后调用它。根据需要将参数发送回它 - 我已经将回调函数创建为isValid
内部的匿名函数,但如果您愿意,它可以是一个单独的命名函数。
function requestAddress(urlCombined, callback) {
request(urlCombined, function (error, response, body) {
a = JSON.parse(body);
c = addressInfo.status;
callback(error, response, body);
});
}
function isValid() {
// Retrieve address from input
addressGet = $('#address').val();
// Combine url to get address's information
var urlCombined = 'websitehere' + something;
requestAddress(urlCombined, (error, response, body) => {
//do something
if (condition met) {
return true;
} else {
return false;
}
});
}
if (isValid()) {
do something
}
答案 1 :(得分:0)
您可以尝试通过两次回调来解决它。
或者只是尝试新语法$(window).on("unload",function(){
localStorage.clear();
});
onunload