- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是创建数组的函数:
//retrieve calendar id's
function getCalendarId(){
gapi.client.load('calendar', 'v3', function() {
var request = gapi.client.calendar.calendarList.list();
request.execute(function(resp) {
var calendarID = [];
for (var i = 0; i < resp.items.length; i++) {
var ID = resp.items[i].id;
var calendarSummary = resp.items[i].summary;
var calendarLocation = resp.items[i].location;
var calendarDescription = resp.items[i].description;
if (calendarDescription && calendarDescription.indexOf("Resource Tracker") != -1) {
var index = calendarID.length;
calendarID[index] = ID;
}//endif
}//end for
console.log(typeof calendarID);
return calendarID;
});//end request.execute function(resp)
});//end client.load function
}//end getCalendarId
这是分配它的函数:
function submitEvents(numHorses){
var startdate = $("#from").val();
var enddate = $("#to").val();
var horsetypes = [];
var calid = [];
console.log(typeof(calid));
calid = getCalendarId();
console.log(typeof(calid));
for (i=0; i<numHorses;i++){
horsetypes[i] = $( "#type"+i).val();
addEvent(calid[i%calid.length], startdate, enddate, horsetypes[i]);
}//end for
};//end submitEvents
当我检查类型时,calendarID 是返回之前的一个对象,而 calid 是一个对象,当我声明它时,但是当我进行赋值时 calid=getCalendarID(); calid 的类型变为未定义。
我用头撞墙已经有一段时间了;任何帮助表示赞赏!
最佳答案
最外层的函数没有返回值;它没有返回值,所以设置为函数返回值的变量被设置为undefined。内部匿名函数包含 return
,这对 API 可能有意义也可能没有意义(可能没有)。
真正的问题是对日历 API 的调用可能需要任意长的时间(它是异步的),因此您不能在单个(同步)函数中设置值并期望它起作用。当您的请求进出远程服务器时,Javascript 不会停止执行,而您真的不希望它停止。
Similar problem/answer: javascript function return not working
由于您可能在其他地方使用 getCalendarId
,您可以考虑让它拥有自己的函数,并在 Google Calendar 函数返回时调用它:
function getCalendarId(callback){ // !!!
gapi.client.load('calendar', 'v3', function() {
var request = gapi.client.calendar.calendarList.list();
request.execute(function(resp) {
var calendarID = [];
for (var i = 0; i < resp.items.length; i++) {
// omitted for brevity
}//end for
console.log(typeof calendarID);
callback(calendarID); // !!!
});//end request.execute function(resp)
});//end client.load function
}//end getCalendarId
function submitEvents(numHorses){
// omitted for brevity
getCalendarId(function(calid) { // !!!
console.log(typeof(calid));
for (i=0; i<numHorses;i++){
// omitted for brevity
}//end for
});
};//end submitEvents
关于javascript返回数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152080/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!