【发布时间】:2021-12-22 21:13:21
【问题描述】:
我有以下承诺,但如果我在 ts 操场上运行此代码,它似乎无需我等待就可以解决。
const promises = [later(1000)];
function later(delay:number) {
return new Promise<void>(function(resolve) {
setTimeout(() => {
console.log('test');
resolve();
}, delay);
});
}
我只希望它在我调用时执行
await Promise.all(promises);
【问题讨论】:
-
await不会触发/执行任何操作。Promise以new Promise(...)开头。 -
代码在
later(1000)被调用的那一刻被执行,这发生在第一行。 -
我假设
later是这里的一个示例 - 但请注意,我们已经在 Node.js 中提供了一个返回承诺的 setTimeout 变体,您可以“直接”使用它。 -
承诺不是函数。你不能“执行”它。
标签: typescript promise