我试图使用流星从googlesheets获取信息。我想要同步调用googlesheets,所以我搜索了一个解决方案,并尝试按照此处列出的说明进行操作:https://themeteorchef.com/snippets/synchronous-methods/
我想使用Meteor.wrapAsync,因为我使用的googlesheets包对光纤不起作用,所以使用future会引起错误。
这是我的代码(简化测试版):
fakeRead2 = function(sheetID) {
var my_sheet = new GoogleSpreadsheet(sheetID);
var syncFunc = Meteor.wrapAsync(my_sheet.useServiceAccountAuth);
var res = syncFunc(google_service_json, function(err) {
console.log("1");
return "2";
});
console.log(res);
};
我预计输出为1和2,但我得到了:
I20160421-16:55:19.535(0)? undefined
I20160421-16:55:19.873(0)? 1
所以console.log(res);在同步功能之后不会调用它。
我不明白为什么不同步调用它。有人能指出我做错了吗?
由于
答案 0 :(得分:0)
您似乎需要提供thisArg
尝试将Meteor.wrapAsync(my_sheet.useServiceAccountAuth)
更改为Meteor.wrapAsync(my_sheet.useServiceAccountAuth, my_sheet)