javascript - 如何承诺在子类 async-await 方法中使用父类的类方法?
问题描述
我有一个 childClass 并且对 parentClass 的访问权限有限。在其中一个 childClass 方法中,我需要调用 parentClass 方法getToken()
。getToken()
和 parentClass 的其余部分是使用回调编写的。子类是用 promises 和 async-await 编写的。
我知道这很混乱,但这是目前唯一存在问题的地方,这是我们需要做的。
问题示例
...
try {
// getToken is not promisified yet so it doesn't work
let tokens = await this.getToken();
refreshToken = tokens.refresh_token;
}
...
我可以制作自定义的“承诺”功能吗?就像是,
// This isn't correct even if the idea were ok
async promisify(function) {
return new Promise((resolve, reject) => {
function((err, data) => {
if (err) reject(err);
else resolve(data);
})
})
}
然后在我的代码中写:
...
try {
// getToken is maybe promisified
let tokens = await this.promisify(this.getToken());
refreshToken = tokens.refresh_token;
}
...
还是看起来像
const util = require('util');
const asyncGetToken = util.promisify(parentClass.getToken);
...
try {
let tokens = await asyncGetToken();
refreshToken = tokens.refresh_token;
}
...
如果是这样,我是否有正确的 childClass 实例可以使用?
我知道这很麻烦,但感谢您提供任何提示。
解决方案
推荐阅读
- file - 我关于学生数据库管理的项目代码在编译器上完美运行,但文本文件似乎被扭曲了。问题可能是什么?
- android - Android 横幅 adview 说缺少所需的 xml 属性 adsize
- python - 无法向下滚动到 Selenium,python 中的元素
- nuxt.js - Nuxt Cloudinary 模块:获取未托管在 Cloudinary 上的图像时获取损坏的图像
- ajax - DataTable 控制器模型无法读取数据表请求
- mongodb - GraphQL:排序不适用于 findMany 和 graphql-compose-mongoose
- graphdb - 推理规则中的“不存在”约束
- python - 如何从 Python 中的这个 For 循环返回我的结果
- java - 是什么导致错误“关系“table_name”不存在”,我该如何解决?
- android - Android应用程序崩溃原因:输入调度超时,(服务器)没有响应