相关疑难解决方法(0)

Async/Await类构造函数

目前,我正在尝试async/await在类构造函数中使用.这样我就可以获得e-mail我正在研究的Electron项目的自定义标签.

customElements.define('e-mail', class extends HTMLElement {
  async constructor() {
    super()

    let uid = this.getAttribute('data-uid')
    let message = await grabUID(uid)

    const shadowRoot = this.attachShadow({mode: 'open'})
    shadowRoot.innerHTML = `
      <div id="email">A random email message has appeared. ${message}</div>
    `
  }
})
Run Code Online (Sandbox Code Playgroud)

但是,目前该项目不起作用,出现以下错误:

Class constructor may not be an async method
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过这个,以便我可以在其中使用async/await?而不是要求回调或.then()?

javascript node.js async-await

108
推荐指数
7
解决办法
8万
查看次数

async/await是否允许我们在构造函数上使用?

正如问题所述.我会被允许这样做:

class MyClass {
    async constructor(){
        return new Promise()
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript async-await ecmascript-next

18
推荐指数
4
解决办法
1万
查看次数

异步外部函数留下开放句柄 - Jest、Supertest、Express

我开始使用 Jest 和 Supertest(针对端点)测试我的应用程序。测试工作顺利,但Jest 在运行测试后检测到 2 个打开的句柄,这会阻止 Jest 干净退出。

\n

这个打开的句柄是由我的测试文件中调用的外部异步函数生成的。我正在使用外部函数从 Auth0 API 请求 JWT 令牌;但对 Auth0 的请求还在其响应中提供了传递端点中间件的关键信息(有关此的更多信息如下)。这里要记住两件事:

\n
    \n
  1. 到目前为止,我无法避免从 Auth0 请求令牌,因为正如我所说,该响应还包含一个user具有关键信息的对象。Auth0 将此对象设置在主体响应之外的同一级别,但不在其中。该信息是传递端点中间件的关键。
  2. \n
  3. 我已经隔离了所有错误,以确保仅当我调用从 Auth0 API 请求令牌和用户信息的外部异步函数时才会出现问题;该问题是通过使用getToken测试文件中的该函数(称为 )生成的。
  4. \n
\n

测试文件代码

\n
import app from "../app";\nimport mongoose from "mongoose";\nimport supertest from "supertest";\nimport { getToken } from "../helpers";\nimport dotenv from "dotenv";\nimport * as config from "../config";\n\ndotenv.config();\n\nconst api = supertest(app);\n\nlet authToken: any;\nlet db: any;\n\nbeforeAll(async() => {\n  try {\n    mongoose.connect(config.MONGODB_URI, {\n      useNewUrlParser: true,\n      useUnifiedTopology: true,\n      useCreateIndex: …
Run Code Online (Sandbox Code Playgroud)

node.js express supertest jestjs

13
推荐指数
1
解决办法
2722
查看次数