Javascript是一个无效的调用
Javascript is this a vaild call?
我知道在javascript中从webmethods
获取return
数据时,这段代码是有效的,但如果它是另一个js方法的返回呢?
alert
从未运行过,所以我想不会,但我想确保是这个代码而不是其他代码抛出错误:
function previousWinner() {
//Webservice call
services.isUserAWinner(ID, events, function (response) {
//Code
//Return
return true;
}
//Return
return false;
});
}
稍后在我的代码中,我称之为
previousWinner(function (response) {
alert(response);
//Check to see if user is a winner
if (!response) {
//Check likes
hasUserLiked();
}
});
previousWinner(function (response) {
是否仅适用于web方法调用?
这就是您应该定义previousWinner的方式,其中"code"是一些布尔值,告诉您运行回调。
function previousWinner(callback) {
//Webservice call
services.isUserAWinner(ID, events, function (response) {
//Code
var code = response == true; // if response is a boolean this will work, otherwise you need to run some other type of conditional
if (code && callback) {
callback(response);
//Return
return true;
}
//Return
return false;
});
}
第二个示例传递对函数本身的引用,而不是结果。如果你想内联调用它,你可以这样做:
previousWinner((function (response) {
alert(response);
//Check to see if user is a winner
if (!response) {
//Check likes
hasUserLiked();
}
})());
EDIT:在"webmethods"的情况下,我认为你指的是AJAX调用,当请求返回时,你会传递一个对函数的引用,用作回调。这就是它异步的原因(AJAX中的A)。
根据previousWinner
定义,该函数不带参数,因此两个调用都是等效的:
previousWinner();
previousWinner(1);
previousWinner(1,2,3,4,5,6);
previousWinner(function(){},function(){});
// and so on
在第二个示例中,您似乎希望提供一个回调作为参数
如果是这样的话,你应该考虑将你的函数重新定义为:
function previousWinner(callback) {
//Webservice call
services.isUserAWinner(ID, events, function (response) {
//Code
if(typeof callback == 'function')
callback(response);
//return whatever you want
});
}
相关文章:
- jQuery"焦点”;在一个实例中有效,但在其他实例中无效
- 未捕获的无效值错误:initMap 不是一个函数
- 在JavaScript中测试一个无效参数w/Chai
- Javascript——为什么一个document.getElementById()有效,而另一个无效
- FineUploader 批量上传一个无效对象
- JavaScript 方法一个有效,另一个无效
- 在比较两个值时,JavaScript似乎评估了一个无效的结果
- 有人能告诉我为什么其中一个有效,另一个无效吗
- gap.client.load未调用回调:在console.log中指定了一个无效或非法的字符串
- htmlunit:指定了一个无效或非法的选择器
- 我的代码在赋值时得到了一个无效的左边
- 服务器返回了一个无效的响应
- 谷歌日历返回一个无效的json文件
- 我怎么能停止得到一个无效的日期在IE与时刻.js
- 在赋值中得到一个无效的左手边
- 删除最后一个无效字符,而不是第一个(javascript验证)
- 拉斐尔.2.1.0.min.js有一个无效的UTF-8字节序列
- Javascript是一个无效的调用
- 两个相似函数之间的区别,为什么一个有效而另一个无效
- 如何知道何时输入有一个:无效的选择器