Meteor.wrapAsync不工作

时间:2016-04-21 17:08:05

标签: meteor

我试图使用流星从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);在同步功能之后不会调用它。

我不明白为什么不同步调用它。有人能指出我做错了吗?

由于

1 个答案:

答案 0 :(得分:0)

您似乎需要提供thisArg

尝试将Meteor.wrapAsync(my_sheet.useServiceAccountAuth)更改为Meteor.wrapAsync(my_sheet.useServiceAccountAuth, my_sheet)