javascript - 当我在我的 word 插件应用程序中使用 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>
这是我试图返回承诺的方法
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);
});
}
我尝试在我的插件项目中从网络教程创建一个示例承诺方法,即使我遇到了同样的错误。请让我知道 word addin 是否支持承诺!或者如果我错过了什么
解决方案
以下是创建函数作为 promise 并调用函数的方法
关于 promise 如何工作以及如何调用它的示例 cade,promise 对象只能通过调用 then 方法并传递 resolve 和 reject 回调函数来调用。
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);
})
推荐阅读
- python - 使用具有相同类名的 Selenium 问题进行 Web 抓取
- python-3.x - 如何获取用户输入并将其放入python数组中的新数组中?
- pointers - 如何在参数化派生类型中创建 Fortran 类型绑定过程?
- python - Pandas 数据框:为匹配正则表达式的列/行分配特定值
- swift - 布尔谓词导致零行数
- google-sheets - Scoring on Google Sheets with IF/AND statements
- angular - 我的主页上有 3 个组件,如何在 Angular 7 的路由中调用它
- php - in_array 函数总是返回 false
- process - 尝试从 Rust 启动另一个可执行文件时权限被拒绝错误
- android - Android 插页式广告 - 返回时关闭应用