1
在打字稿2.3中引入了一個新功能,等待任何人發佈一個簡單的例子,說明如何使用相同的承諾以及相同的主要用例,我一直在尋找到有變化的例子登錄等待 - 簡單的例子(打字稿)
async function f() {
for await (const x of g()) {
console.log(x);
}
}
,但不能太瞭解使用情況
在打字稿2.3中引入了一個新功能,等待任何人發佈一個簡單的例子,說明如何使用相同的承諾以及相同的主要用例,我一直在尋找到有變化的例子登錄等待 - 簡單的例子(打字稿)
async function f() {
for await (const x of g()) {
console.log(x);
}
}
,但不能太瞭解使用情況
下面是其使用,等待-的打印「1」,等待第二個樣本然後打印「2」:
// Polyfill Symbol.asyncIterator
(Symbol as any).asyncIterator = Symbol.asyncIterator || Symbol("Symbol.asyncIterator");
async function sleep(ms: number): Promise<void> {
return new Promise<void>((resolve, reject) => {
setTimeout(resolve, ms);
});
}
async function* asyncGenerator() {
yield 1;
await sleep(1000);
yield 2;
}
(async() => {
for await (const num of asyncGenerator()) {
console.log(num);
}
})().catch(e => console.error(e));
打字稿2.3版本說明有一些helpful caveats
esnext
在compilerOptions.lib
設置你的tsconfig.json
(或--lib
命令行標誌)。tsconfig.json
(或--downlevelIterators
的命令行中)中設置compilerOptions.downlevelIterators
。Symbol.asyncIterator
填充(包含在上面的代碼片段中)。