在 typescript
此延迟库可用于 es 模块, commonjs 模块和 typescript 模块
实例
使用情况 es 模块,文件为 .mjs 或者说 .js 扩展
何时 .js 扩展名, 值 module 属性在 package.json
应该是 module。 。 。 .
import { Deferred } from '@esutils/deferred';
async function demo() {
const defer = new Deferred();
setTimeout(() => {
defer.resolve();
});
console.log(`Start ${Date.now()}`);
await defer.promise;
console.log(`End ${Date.now()}`);
}
demo();
使用情况 commonjs 模块,文件为 .cjs 或者说 .js 扩展
何时 .js 扩展名, 值 module 属性在 package.json
应该是 commonjs 或未说明.
const { Deferred } = require('@esutils/deferred');
async function demo() {
const defer = new Deferred();
setTimeout(() => {
defer.resolve();
});
console.log(`Start ${Date.now()}`);
await defer.promise;
console.log(`End ${Date.now()}`);
}
demo();
使用情况 typescript 模块,文件为 .ts 扩展
import { Deferred } from '@esutils/deferred';
async function demo() {
const defer = new Deferred<void>();
setTimeout(() => {
defer.resolve();
});
console.log(`Start ${Date.now()}`);
await defer.promise;
console.log(`End ${Date.now()}`);
}
demo();