【发布时间】:2021-09-13 19:49:24
【问题描述】:
基本上,我正在运行搜索查询。所有参数、变量等都可以正常工作。在成功事件的某一时刻,我必须运行一个收集好友请求状态的函数。这个搜索查询正在运行两个 api url,这意味着我必须从另一个函数导入数据。
问题是,我需要保存 data.sent 值,以便将其添加到搜索结果中。我这样做是为了不让用户收到朋友任务的垃圾邮件。但是,我使用的每种方法、谷歌和/或实验结果data.sent 成为undefined ..它也是一个全局变量。我真的不知道还能做什么。
这是我一直在研究的搜索查询功能。除了我运行fetchSTatus 函数的部分之外,它都很完美。
$(document).ready(function(){
var person = new Object();
$.ajax({
url: 'http://localhost:3000/customers/',
type: 'GET',
dataType: 'json',
data: person,
success: function (data, textStatus, xhr) {
$('#txt-search').keyup(function(){
var searchField = $(this).val();
if(searchField === '') {
$('#filter-records').html('');
return;
}
var regex = new RegExp(searchField, "i");
var output = '<div class="row">';
var count = 1;
$.each(data, function(key, val){
if(val.name === DefaultName) {
return;
}
if ((val.name.search(regex) != -1) || (val.name.search(regex) != -1)) {
output += '<br><h5>' + val.name + '</h5>';
output += '<h5>' + val.uuid + '</h5>';
fetchSTatus(val.uuid);
output += '<h5>' + senderPerson + '</h5>';
}
});
output += '</div>';
$('#filter-records').html(output);
});
},
error: function (xhr, textStatus, errorThrown) {
document.getElementById('error').style.color = 'red';
const element = document.getElementById("error");
element.innerHTML = "Error in Operation";
return console.log("Error in Operation");
}
});
});
这是fectchSTatus 函数:
function fetchSTatus(x) {
var person = new Object();
$.ajax({
url: 'http://localhost:3000/friends/' + x ,
type: 'GET',
dataType: 'json',
data: person,
success: function (data, textStatus, xhr) {
if(data.sender == Friend1 && data.reciver == x) {
console.log(data.sender);
console.log(Friend1);
console.log(data.reciver);
console.log(x);
console.log(data.sent);
};
return senderPerson = data.sent;
console.log(senderPerson);
},
error: function (xhr, textStatus, errorThrown) {
document.getElementById('error').style.color = 'red';
const element = document.getElementById("error");
element.innerHTML = "Error in Operation";
return console.log("Error in Operation");
}
});
};
【问题讨论】:
-
“它也是一个全局变量”它不是。你有一个名为
data的参数,所以that 就是data。在您尝试访问data.sent时,任何名为data的外部变量均不可见。无论如何,为什么它甚至需要是全球性的?将其传递给fetchSTatus。
标签: javascript jquery node.js function global-variables