当我在我的 word 插件应用程序中使用 Promise 时出现 promise undefined 错误
Getting promise undefined error when i use Promise in my word addin application
我正在开发一个 Word 加载项(Word API + Office.js),我正在尝试实现一个方法作为 promise,但我收到错误消息,指出 promise 未定义
这些是我正在使用的参考
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script src="Scripts/FabricUI/MessageBanner.js" type="text/javascript"></script>
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
这是我尝试return承诺
的方法
function getBase64(file, onLoadCallback) {
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader.onload = function () { resolve(reader.result); };
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
我尝试在我的插件项目中从 Web 教程创建一个示例承诺方法,即使我遇到了同样的错误。请让我知道 word 插件是否支持 promise !!或者如果我遗漏了什么
以下是创建函数作为promise并调用函数的方法
关于 promise 如何工作以及如何调用它的示例,只能通过调用 then 方法并传递 resolve 和 reject 回调函数来调用 promise 对象。
function callPromise() {
return new Promise(function(resolve, reject) {
// do a thing, possibly async, then…
if (true) {
resolve("Stuff worked!");
}
else {
reject(Error("It broke"));
}
});
}
callPromise().then(function(success){
console.log(success);
}, function(error)
{
console.log(error);
})
function getBase64(file, onLoadCallback) {
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader.onload = function () { resolve(reader.result); };
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
getBase64('file', function(){}).then(function(result)
{
console.log(result);
},
function(error)
{
console.log(error);
})
该错误意味着您的加载项是 运行 在 IE 中,它本身不支持 Promises。 Office 有一个您可以使用的 Promises polyfill。只需将此代码添加到 JavaScript 文件的顶部:
如果 (!window.Promise)
{ window.Promise = Office.Promise; }
我正在开发一个 Word 加载项(Word API + Office.js),我正在尝试实现一个方法作为 promise,但我收到错误消息,指出 promise 未定义
这些是我正在使用的参考
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script src="Scripts/FabricUI/MessageBanner.js" type="text/javascript"></script>
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
这是我尝试return承诺
的方法function getBase64(file, onLoadCallback) {
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader.onload = function () { resolve(reader.result); };
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
我尝试在我的插件项目中从 Web 教程创建一个示例承诺方法,即使我遇到了同样的错误。请让我知道 word 插件是否支持 promise !!或者如果我遗漏了什么
以下是创建函数作为promise并调用函数的方法
关于 promise 如何工作以及如何调用它的示例,只能通过调用 then 方法并传递 resolve 和 reject 回调函数来调用 promise 对象。
function callPromise() {
return new Promise(function(resolve, reject) {
// do a thing, possibly async, then…
if (true) {
resolve("Stuff worked!");
}
else {
reject(Error("It broke"));
}
});
}
callPromise().then(function(success){
console.log(success);
}, function(error)
{
console.log(error);
})
function getBase64(file, onLoadCallback) {
return new Promise(function (resolve, reject) {
var reader = new FileReader();
reader.onload = function () { resolve(reader.result); };
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
getBase64('file', function(){}).then(function(result)
{
console.log(result);
},
function(error)
{
console.log(error);
})
该错误意味着您的加载项是 运行 在 IE 中,它本身不支持 Promises。 Office 有一个您可以使用的 Promises polyfill。只需将此代码添加到 JavaScript 文件的顶部: 如果 (!window.Promise) { window.Promise = Office.Promise; }