Javascript 调用函数时未捕获的语法错误(意外标记)
我想写一些代码来从aJax调用返回一些数据 以下是我所指的资源: 以下是我编写的代码:Javascript 调用函数时未捕获的语法错误(意外标记),javascript,syntax-error,Javascript,Syntax Error,我想写一些代码来从aJax调用返回一些数据 以下是我所指的资源: 以下是我编写的代码: var data = getData("http://www.file.txt", function(result)); alert(data); function getData(dataUrl, result) { $.ajax({url: dataUrl, success: function(result){ return result; }}); } 我得到以下错误
var data = getData("http://www.file.txt", function(result));
alert(data);
function getData(dataUrl, result)
{
$.ajax({url: dataUrl, success: function(result){
return result;
}});
}
我得到以下错误:
未捕获的语法错误:意外标记)
在这一行代码中:
var data = getData("http://www.file.txt", function(result));
此外,在获取大量数据时,上述代码是否有效
谢谢您没有传递括号,因此得到了未捕获的语法错误:意外标记)错误 但我认为你必须使用这样的函数
如果您使用的是ajax调用,那么您必须使用
success
或。然后在接收数据后将其作为回调执行
代码应仅为以下内容:
var data = '';
$.ajax({url: dataUrl, success: function(result){
data = result;
alert(data);
}});
这不是回调的正确语法,而且异步调用也不是这样工作的。请尝试此操作-数据在回调中设置
var data;
getData("http://www.file.txt");
function getData(dataUrl)
{
$.ajax({url: dataUrl, success: function(result){
data = result;
alert(data);
}});
}
从JavaScript基础知识来看,函数应该满足以下要求
JavaScript函数由function关键字、名称和括号()定义
函数基本上是一个JavaScript对象。因此,括号是必需的,因为它们将函数与脚本或网页的其他项区分开来
所以代码行实际上是不正确的
var data = getData("http://www.file.txt", function(result));
它应该是以下任一项
var data = getData("http://www.file.txt", function(result) {
//anonymous function body
});
或
嗯,function(result)
是函数表达式的开头,但它缺少主体。身体。另外,在您的success
回调中return result
并不完全有效。您能解释一下您期望函数(result)
做什么吗?我很想以重复的方式结束此操作(因为第一行),但我觉得您实际的问题是不了解回调(甚至可能是函数)的方式在JS中工作。为什么全局var data
变量?data
不是完全全局的,只是在这个片段所在的闭包中<代码>结果
参数,因为我错过了它;)当然,getData
是免费的(“全局”)。异步调用不是这样工作的。你能解释一下你的代码和OP的代码有什么区别吗?根据我对这个问题的理解,他需要的是执行一些代码作为回调,并将值赋给数据。因此,作为成功函数的结果,结果将分配给数据。具体来说:警报(数据)
将警报空字符串,而不是预期的结果。警报(数据)将在数据分配结果值后使用。您为什么将其放在其中(OP没有)?为什么要使用数据
变量,而不仅仅是警报(结果)
?这只是一个例子,为什么op get error会出错,所以我在@bergib给出了解释,但是你的例子会抛出一个错误,因为结果
没有定义。我认为您不知道var data=getData(“http://www.file.txt“,回调(结果))
does.op pass result在他的函数中,所以我传递了它,这个解决方案是针对未捕获的语法错误:意外标记)所以我给出了关于它的解释,而不是针对结果和其他op要求的未捕获的语法错误:意外标记)哦,是的,关于承诺问题,你是对的,所以我编辑了我的答案,所以如果有人引用它,它将得到正确的答案解决方案没有错,谢谢@FelixKling@KevalBhatt:现在是:-/Use返回承诺。解析($.ajax(…)
(或者根本不要转换为本机承诺)
var data = getData("http://www.file.txt", function(result));
var data = getData("http://www.file.txt", function(result) {
//anonymous function body
});
var data = getData("http://www.file.txt", callbackFn(result));
function callbackFn(result) {
//function body goes here.
}