AP
function* test(fl, time = 1e3) {
yield 0
return fl ? yield* sleep(time, 'reg') : yield 2
}
Это тоже какая фигня заменяется на
function* test(fl, time = 1e3) {
yield 0
return fl ? sleep(time, 'reg') : 2
}
Size: a a a
AP
function* test(fl, time = 1e3) {
yield 0
return fl ? yield* sleep(time, 'reg') : yield 2
}
function* test(fl, time = 1e3) {
yield 0
return fl ? sleep(time, 'reg') : 2
}
BB
L
function* test(fl, time = 1e3) {
yield 0
return fl ? yield* sleep(time, 'reg') : yield 2
}
function* test(fl, time = 1e3) {
yield 0
return fl ? sleep(time, 'reg') : 2
}
AP
L
AP
L
function* sleep(ms, val) {
return yield new Promise(r => setTimeout(() => r(val), ms))
}
function* test(fl, time = 1e3) {
yield 0
return fl ? yield* sleep(time, 'reg') : yield 2
}
function* each() {
let sum = 0
for(let i = 0; i < 1e6; i++)
sum += yield* test()
return yield sum
}
function* test2() {
Promise.resolve().then(() => console.log('after'))
console.log('sum:', yield* each())
Promise.resolve().then(() => console.log('before sleep'))
for(let i = 10; i--; )
console.log(`r${i}=`, yield* test(1, 100))
console.log('sum:', yield* each())
}
asyncWrapper(test2)
AP
L
AP
L
IS
L
L
IS
AP
L
function* sum(a, b) {
return a + b
}
function* test2() {
console.time('sum')
let summary = 0
for(let i = 0; i < 1e6; i++) {
summary += yield* sum(i, i)
}
console.timeEnd('sum')
console.log({summary})
}
asyncWrapper(test2)
function sumSync(a, b) { return a + b }
function test2Sync() {
console.time('sumSync')
let summary = 0
for(let i = 0; i < 1e6; i++) {
summary += sumSync(i, i)
}
console.timeEnd('sumSync')
console.log({summary})
}
test2Sync()
async function sumAsync(a, b) { return a + b }
async function test2Async() {
console.time('test2Async')
let summary = 0
for(let i = 0; i < 1e6; i++) {
summary += await sumAsync(i, i)
}
console.timeEnd('test2Async')
console.log({summary})
}
test2Async()
L