Javascript API Office(2013)-向上返回值



目标:

我正在探索用于Office的Javascript API(用于Office 2013(,但遇到了一个奇怪的问题。我似乎无法将变量返回到函数链的上游。例如,API提供了一种检查和查看当前与文档相关联的所有绑定的方法,使用以下方法:

Office.context.document.bindings.getAllAsync(function (asyncResult) {});

我正试图在函数中使用它来获取作为变量的数据,这样我就可以调用某些绑定。

问题:

我可以在API调用的最内层函数中调用显示函数,并使用它来显示结果。不过,我似乎无法向上返回数据。

我尝试过的:

我已经尝试在包装器函数中,在API调用之外声明一个变量。我试着做了两次退货声明。我觉得这应该有效:

function getBindings () {
    var bindingString;
    Office.context.document.bindings.getAllAsync(function (asyncResult) {
        for (var i in asyncResult.value) {
            bindingString += asyncResult.value[i].id;
        }
    });
    return 'Bindings: '+bindingString[0];
}

不幸的是,它只返回这个:

Bindings: undefined

我知道在最里面的函数中,我有数据,因为我已经从里面调用了显示函数,并将绑定写入了页面。因此,我可以创造一个隐藏的容器,填充然后阅读。不过我觉得那会是一次黑客攻击。

问题:

是否有更好的方法返回变量?

Benjamin Gruenbaum对此进行了评论,因此我将其添加到此处,以便于查找,以防其他人遇到此问题。


不能返回异步调用的响应同步地(它还没有出现(,所以您用它调用一个方法value,在该方法中,您可以使用它的值-这被称为延续传球风格。或者,您可以返回对象而不是对象本身,然后在通过then方法准备,这被称为promise


因此,不幸的是,答案是无法做到这一点。

相关内容

  • 没有找到相关文章

最新更新