gpt4 book ai didi

Javascript(节点): How to get data back from a Google Calendar API callback

转载 作者:行者123 更新时间:2023-11-30 20:56:36 24 4
gpt4 key购买 nike

关于这个例子:https://developers.google.com/google-apps/calendar/quickstart/nodejs

我想更改 listEvents 以返回事件的 JSON 数组。

目前是这样调用的:

authorize(JSON.parse(content), listEvents);

其中“listEvents”是传递给回调的函数:

function authorize(credentials, callback) {

我尝试向 ListEvents 添加一个返回语句,然后是:

var jsonEvents = authorize(JSON.parse(content), listEvents);
console.log("Json Events=");
console.log(jsonEvents);

我知道它对我来说是异步的,因为我在 listEvents 函数的 console.log 输出之前得到了上面的 console.logs。我也试过输入“等待”这个词,但没有成功。

我尝试在 listEvents 中设置一个额外的参数:

var jsonEvents; 
authorize(JSON.parse(content), listEvents(jsonEvents));
console.log("Json Events=");
console.log(jsonEvents);

导致“类型错误:回调不是函数”。

更新:基于@Tuches 的回答,我让它工作了。想知道是否有必要扩展到这里。

  authorize(JSON.parse(content), function(token) {
console.log("Got Token");
//console.log(token);
listEvents(token, function(jsonResult) {
console.log("Json Callback Events=");
console.log(jsonResult);
});
});

最佳答案

我不知道谷歌日历 API,但快速阅读一下第二个参数是一个回调函数。这意味着 authorize 的结果将结束,然后将调用 listEvents。所以实际上你应该做的是处理 listEvents 中返回的数据,或者你可以修改 listEvents 以返回回调,例如:

function listEvents(auth, callback) {
// ... implementation of the function
// When the function is done an there's data to
// return, callback the data
callback(data);
}

这样您就可以通过执行以下操作来处理从 listEvents 返回的数据:

authorize(JSON.parse(content), listEvents(data, function(response) {
console.log(response); // <-- return from listEvents
})
);

编辑:对代码的小修正。

关于Javascript(节点): How to get data back from a Google Calendar API callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47599048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com