在Promise中包装`getFileAsync`会在Word for Mac上返回失败的结果

时间:2018-06-19 14:13:39

标签: ms-word office-js

我正在尝试使对Office JS API的调用更加合理,以允许使用async / await模式来使代码更整洁。在Mac上的Word(版本16.15)上,这导致Office.context.document.getFileAsync失败。我有什么想念的吗?这是我如何包装失败的简化示例:

function getFile() {
    return new Promise(resolve => {
        Office.context.document.getFileAsync(
            Office.FileType.Compressed,
            { sliceSize: 65536 }, // doesn't matter if this is passed or not
            resolve
        );
    })
}

Word.run(async context => {
    const result = await getFile();
    console.log(result.status); // "failed"
});

2 个答案:

答案 0 :(得分:0)

您是否使用任何工具来翻译您的代码?

如果不是这样,可能是Windows中的JS运行时版本不支持async / await。

答案 1 :(得分:-1)

您是否可以像这样将{ sliceSize: 65536 }作为第二个参数添加到getFileAsync()中?

Office.context.document.getFileAsync(Office.FileType.Compressed, { sliceSize: 65536 }, resolve);

在Mac上,最大64kb是用于获取切片的数据;在Windows上,它可以更大(如4mb)。