Size: a a a

JavaScript Noobs — сообщество новичков

2020 September 12

Р

Роман in JavaScript Noobs — сообщество новичков
Pavel Raevskiy
это то шо я кидал?
источник

j

jk in JavaScript Noobs — сообщество новичков
Ivan Bobchenkov
PromisesInSeries

Напишите функцию, которая принимает массив асинхронных функций и последовательно(следующая начинается, когда закончилась предыдущая) вызывает их, передавая в аргументы результат вызова предыдущей функции.

Пример:

const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300)), 300);

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200)), 200);

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100)), 100);

promisesInSeries([firstPromise, secondPromise, thirdPromise]);
Выполнит resolve(300) через 300 мс, потом resolve(200) через 200 мс, потом resolve(100) через 100 мс
Лол, о половине задания никто не был в курсе.
источник

L

Lupusregina[beta] in JavaScript Noobs — сообщество новичков
Ivan Bobchenkov
PromisesInSeries

Напишите функцию, которая принимает массив асинхронных функций и последовательно(следующая начинается, когда закончилась предыдущая) вызывает их, передавая в аргументы результат вызова предыдущей функции.

Пример:

const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300)), 300);

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200)), 200);

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100)), 100);

promisesInSeries([firstPromise, secondPromise, thirdPromise]);
Выполнит resolve(300) через 300 мс, потом resolve(200) через 200 мс, потом resolve(100) через 100 мс
о, задачка
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Это моё решение?
источник

Р

Роман in JavaScript Noobs — сообщество новичков
jk
Лол, о половине задания никто не был в курсе.
блин, как так, я же кидал ссылку, где все это написано с кодпейна?
источник

Р

Роман in JavaScript Noobs — сообщество новичков
Ivan Bobchenkov
Это моё решение?
нет
источник

j

jk in JavaScript Noobs — сообщество новичков
Роман
блин, как так, я же кидал ссылку, где все это написано с кодпейна?
Ага, я прощёлкал этот момент.
источник

L

Lupusregina[beta] in JavaScript Noobs — сообщество новичков
Ivan Bobchenkov
PromisesInSeries

Напишите функцию, которая принимает массив асинхронных функций и последовательно(следующая начинается, когда закончилась предыдущая) вызывает их, передавая в аргументы результат вызова предыдущей функции.

Пример:

const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300)), 300);

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200)), 200);

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100)), 100);

promisesInSeries([firstPromise, secondPromise, thirdPromise]);
Выполнит resolve(300) через 300 мс, потом resolve(200) через 200 мс, потом resolve(100) через 100 мс
[Array.prototype, ...[function* () {}, async function* () {}]
 .map(Object.getPrototypeOf)
 .map(f => f.prototype)]
 .map(p => Object.assign(p, {
   async *mapAsync(fn) {
     let i = 0
     for await(const v of this)
       yield fn(v, i++)
   },
   async *filterAsync(fn) {
     for await(const v of this)
       if ( fn(v) )
         yield v
   },
   async toArrayAsync() {
     const a = []
     for await(const v of this)
       a.push(v)
     return a
   },
 }))

/////////////
const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300), 300));

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200), 200));

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100), 100));

[firstPromise, secondPromise, thirdPromise]
 .mapAsync(f => f())
 .mapAsync(v => console.log(v))
 .toArrayAsync()
источник

PR

Pavel Raevskiy in JavaScript Noobs — сообщество новичков
async function promisesInSeries (functions) {
 let prev;
 for(let i = 0; i<functions.length; i++) {
   prev = await functions[i](prev);
 }
}
ну я сделал плюс минус тоже самое, только не вернул последний результат, не правильно
Кстати откуда ты взял что нужно вернуть результат?
источник

j

jk in JavaScript Noobs — сообщество новичков
Lupusregina[beta]
[Array.prototype, ...[function* () {}, async function* () {}]
 .map(Object.getPrototypeOf)
 .map(f => f.prototype)]
 .map(p => Object.assign(p, {
   async *mapAsync(fn) {
     let i = 0
     for await(const v of this)
       yield fn(v, i++)
   },
   async *filterAsync(fn) {
     for await(const v of this)
       if ( fn(v) )
         yield v
   },
   async toArrayAsync() {
     const a = []
     for await(const v of this)
       a.push(v)
     return a
   },
 }))

/////////////
const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300), 300));

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200), 200));

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100), 100));

[firstPromise, secondPromise, thirdPromise]
 .mapAsync(f => f())
 .mapAsync(v => console.log(v))
 .toArrayAsync()
Отвал башки.
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Там решение в 1 строку
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
[Array.prototype, ...[function* () {}, async function* () {}]
 .map(Object.getPrototypeOf)
 .map(f => f.prototype)]
 .map(p => Object.assign(p, {
   async *mapAsync(fn) {
     let i = 0
     for await(const v of this)
       yield fn(v, i++)
   },
   async *filterAsync(fn) {
     for await(const v of this)
       if ( fn(v) )
         yield v
   },
   async toArrayAsync() {
     const a = []
     for await(const v of this)
       a.push(v)
     return a
   },
 }))

/////////////
const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300), 300));

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200), 200));

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100), 100));

[firstPromise, secondPromise, thirdPromise]
 .mapAsync(f => f())
 .mapAsync(v => console.log(v))
 .toArrayAsync()
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Переслано от Pavel Raevskiy
async function promisesInSeries (functions) {
 let prev;
 for(let i = 0; i<functions.length; i++) {
   prev = await functions[i](prev);
 }
}
ну я сделал плюс минус тоже самое, только не вернул последний результат, не правильно
Кстати откуда ты взял что нужно вернуть результат?
источник

PR

Pavel Raevskiy in JavaScript Noobs — сообщество новичков
Lupusregina[beta]
[Array.prototype, ...[function* () {}, async function* () {}]
 .map(Object.getPrototypeOf)
 .map(f => f.prototype)]
 .map(p => Object.assign(p, {
   async *mapAsync(fn) {
     let i = 0
     for await(const v of this)
       yield fn(v, i++)
   },
   async *filterAsync(fn) {
     for await(const v of this)
       if ( fn(v) )
         yield v
   },
   async toArrayAsync() {
     const a = []
     for await(const v of this)
       a.push(v)
     return a
   },
 }))

/////////////
const firstPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(300), 300));

const secondPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(200), 200));

const thirdPromise = () =>
 new Promise((resolve) => setTimeout(() => resolve(100), 100));

[firstPromise, secondPromise, thirdPromise]
 .mapAsync(f => f())
 .mapAsync(v => console.log(v))
 .toArrayAsync()
это ответ или бред сумашедшего не могу понять
источник

j

jk in JavaScript Noobs — сообщество новичков
Pavel Raevskiy
это ответ или бред сумашедшего не могу понять
Думаю это просто шутка.
источник

L

Lupusregina[beta] in JavaScript Noobs — сообщество новичков
Pavel Raevskiy
это ответ или бред сумашедшего не могу понять
это ответ
источник

L

Lupusregina[beta] in JavaScript Noobs — сообщество новичков
источник

L

Lupusregina[beta] in JavaScript Noobs — сообщество новичков
что не нравится то?
источник

PR

Pavel Raevskiy in JavaScript Noobs — сообщество новичков
Маразм не люблю, а так норм, претензий нету)
источник

М

Максим in JavaScript Noobs — сообщество новичков
Pavel Raevskiy
Маразм не люблю, а так норм, претензий нету)
Это мы уже пробили дно решений)
источник