从Ajax函数返回值
Return values from an Ajax function
我正在尝试创建一个文本块,当Json字符串中的文本发生更改时,该文本块将自动更新。
基本上我从开始
function streamSong(index) {
if (!isUndefined(myPlaylist[index].title))
return myPlaylist[index].title;
else return '';
}
然后修改成这样:
function streamSong(index) {
var currentSongName = 'here';
if (!isUndefined(myPlaylist[index].title)) {
var intervalFunc = function(){
var jsonData = null;
$.ajax({
url: 'http://www.thesite.com/pullJson.php?stream=rapstation',
dataType: "json",
data: { get_param: 'employees' },
success: function (data) {
currentSongName = 'now here';
},
error: function (data) {
currentSongName = 'not working';
}
});
};
setInterval (intervalFunc, 60000);
setTimeout (intervalFunc, 1);
return currentSongName;
}
else return 'no title';
}
第一个函数启动得很好,并返回了我的流标题。第二个函数启动,但我永远无法修改currentSongName的值。
我对Javascript和ajax还是有点陌生,所以请原谅我的无知,但我显然想最终将currentSongName的值设置为我检索到的Json值,但目前我只希望它能够更改计时器上的值。
我做错了吗?
变量修改得很好,但为时已晚。AJAX调用是异步的,因此变量用于在值被分配给它之前返回值
您可以使用回调来处理结果。对于原始代码,它看起来像这样:
function streamSong(index, callback) {
if (!isUndefined(myPlaylist[index].title)) {
callback(myPlaylist[index].title);
} else {
callback('');
}
}
用法:
streamSong(42, function(title) {
// do what you want with the title
});
对于AJAX调用,回调的使用方式如下:
function streamSong(index, callback) {
var currentSongName = 'here';
if (!isUndefined(myPlaylist[index].title)) {
var intervalFunc = function(){
var jsonData = null;
$.ajax({
url: 'http://www.thesite.com/pullJson.php?stream=rapstation',
dataType: "json",
data: { get_param: 'employees' },
success: function (data) {
callback('now here');
},
error: function (data) {
callback('not working');
}
});
};
setInterval (intervalFunc, 60000);
setTimeout (intervalFunc, 1);
} else {
callback('no title');
}
}
相关文章:
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- Javascript中带有返回值的嵌套函数
- 从Ajax函数返回值
- HTML如何根据javascript函数的返回值限制文本输入
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何从嵌套的API函数返回值
- 如何记录调用另一个函数的函数的返回值
- 即使使用回调函数也无法返回值
- PHP 函数不会向 JavaScript 变量返回值
- 从异步函数返回值
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 从节点中的回调函数返回值
- 从另一个文件访问函数的返回值
- 从JSP页面调用Java Script函数未返回值
- jquery csv函数,如何返回值
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 等待函数完成,然后将返回值分配给变量JS
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 在 html 输入字段中使用返回值函数