导入Promise的正确方法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导入Promise的正确方法是什么?相关的知识,希望对你有一定的参考价值。

我试图理解打字稿导入的概念,特别是导出的Promise。我按照https://stackoverflow.com/a/41364294/3969007的答案,它的工作原理。但是ts-lint规则'no-var-requires'并不喜欢这个解决方案。因此我的问题。

我目前使用的代码(min-example):

// app.ts
import Express from 'express';
import { createConnection } from 'typeorm';

const app = Express();
const main = async () => {
    await createConnection();
}

export const appPromise = main().then(() => app);
// server.ts
import http from 'http';
const appPromise = require('./app').appPromise;

const httpPort = normalizePort(process.env.PORT || '8080');
let httpServer: any;
appPromise.then((app: Express.Application) => {
    httpServer = http.createServer(app);

    httpServer.listen(httpPort);
});

正如我所说,ts-lint不喜欢那种导入。所以我试着把它改成:

import appPromise = require('./app').appPromise;

但在这种情况下,它不喜欢.appPromise部分,之后(appPromise.then)在类型'import of type'上不存在。我想我不明白有关进口/出口非常重要的事情。

答案

尝试:

import { appPromise } from './app';

以上是关于导入Promise的正确方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

什么时候然后从Promise.all()的子句运行?

将初始数据提供给片段的正确方法?

将初始数据提供给片段的正确方法?

编写期望 Promise 但如果不满足条件则不返回任何内容的打字稿方法的正确方法是啥?

在 JS 中使用 Promise 链的正确方法