目标:
我正在探索适用于 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
我知道在最里面的函数内部,我有数据,因为我已经从内部调用了我的显示函数,并将绑定写入页面。因此,我可以创建一个隐藏的持有 `,我填充然后阅读。我觉得那将是一个黑客攻击。
问题:
有没有更好的方法来返回变量?