
Сергей
19.05.2017
18:55:50
посмотри const list
в обоих случаях

Zaur
19.05.2017
18:55:54
var tasks = [];
tasks.push(Promise.resolve(1));
tasks.push(Promise.reject('err'));
tasks.push(Promise.resolve(2));
function runTasks(tasks) {
if (!tasks.length) {
console.log('complete');
return Promise.resolve();
}
return tasks.shift()
.then(function(res) {
console.log('res:', res);
return runTasks(tasks);
})
.catch(function(err) {
console.log('err', err);
return runTasks(tasks);
})
};
Вывод в консоль:
res: 1
err err
res: 2
complete
все норм ))

Сергей
19.05.2017
18:56:22
не норм

Google

Сергей
19.05.2017
18:56:23
у тебя старая нода
и это не корректный способ

Rafael
19.05.2017
18:57:57
а все
понял в чем разница
господи, пора сделать перерыв :\

Сергей
19.05.2017
18:58:19
выглядит как костыль
но решает

Rafael
19.05.2017
18:58:50
а в чем спор?

Сергей
19.05.2017
18:58:51

Zaur
19.05.2017
18:59:01

Google

Zaur
19.05.2017
18:59:07

Сергей
19.05.2017
18:59:16
а в чем спор?
спора нет
просто как правильно последовательно обойти все промисы, и чтоб не свалилось от одного упавшего

Rafael
19.05.2017
18:59:24

Сергей
19.05.2017
18:59:46

Rafael
19.05.2017
18:59:51

Сергей
19.05.2017
19:00:11
эээ, с какой стати?
массивы иммутабельны) по своей сути
внутри массив будет дублирован
а старый выкинут сборщику
(могу ошибаться)

Rafael
19.05.2017
19:00:26
где это написано?
как раз таки массивы мутабельны, а строчки - нет

Zaur
19.05.2017
19:00:44
у меня не ругается так :( почему?

Salim
19.05.2017
19:01:59
народ кто пользуется редактором атом ?

Сергей
19.05.2017
19:02:01

Zaur
19.05.2017
19:02:18

Сергей
19.05.2017
19:02:25

Salim
19.05.2017
19:02:35
кто пользуется Атом.
как убрать окошко
Key binding

Сергей
19.05.2017
19:02:44

Rafael
19.05.2017
19:03:07

Сергей
19.05.2017
19:03:08
ты не в курсе как делать скриншоты?

Google

Сергей
19.05.2017
19:03:31
мб он запускает не такой же код как тот который скинул

Rafael
19.05.2017
19:03:54

Сергей
19.05.2017
19:04:06
var tasks = [];
tasks.push(Promise.resolve(1));
tasks.push(Promise.reject('err'));
tasks.push(Promise.resolve(2));
function runTasks(tasks) {
if (!tasks.length) {
console.log('complete');
return Promise.resolve();
}
return tasks.shift()
.then(function(res) {
console.log('res:', res);
return runTasks(tasks);
})
.catch(function(err) {
console.log('err', err);
return runTasks(tasks);
})
};

Salim
19.05.2017
19:04:10
нет )))

Zaur
19.05.2017
19:04:15

Сергей
19.05.2017
19:04:16

Salim
19.05.2017
19:04:28
винда

Сергей
19.05.2017
19:04:34

Salim
19.05.2017
19:04:40
7

Konstantin
19.05.2017
19:04:43

Сергей
19.05.2017
19:05:01
кнопка PrintScreen или же monosnap, joxy

Сергей
19.05.2017
19:05:09
а вообще пиши на es7
с const/let, async/await и без прототипов и self

Salim
19.05.2017
19:05:36
благодарю всех

Сергей
19.05.2017
19:06:18
@abdulgalimov вот твоё решение

Rafael
19.05.2017
19:06:22
вот хоть убейте, я не вижу, где у вас первый вызов рантаска просиходит

Сергей
19.05.2017
19:06:29

Zaur
19.05.2017
19:06:40

Google

Сергей
19.05.2017
19:07:18
кстати, и зачем в рекурсию, если можно без неё?
а у меня кстати, более реальный пример, ты сразу зарезолвленные промисы кидаешь

Rafael
19.05.2017
19:07:51
у тебя тут вроде переполнение стека должно быть, потому что даже когда тасклист пустой, ты все равно резолвишься
а не, этот промис резолв разворачивает стек, тьфу
и зачем ты каждый раз используешь затенение tasks? почему бы не использовать замыкание?

Zaur
19.05.2017
19:09:37

Сергей
19.05.2017
19:09:50

Admin
ERROR: S client not available

Сергей
19.05.2017
19:10:34
и без рекурсии
и результаты собираю
если что, node v 7.10 умеет async/await из коробки

Rafael
19.05.2017
19:11:34
тогда уж

Сергей
19.05.2017
19:11:48

Rafael
19.05.2017
19:12:04

Сергей
19.05.2017
19:12:37
@abdulgalimov теперь ты разобрался в списках промисов))

Rafael
19.05.2017
19:13:04
у тебя лишняя переменная

Google

Zaur
19.05.2017
19:13:08

Rafael
19.05.2017
19:13:19

Сергей
19.05.2017
19:13:25

Rafael
19.05.2017
19:14:09
рекурсия это оверхед по памяти и стеку
циклы же в этом плане более экономны
и вроде в js нет хвостовой рекурсии, но это не точно

Сергей
19.05.2017
19:14:48
а асинхронные циклы ещё и понятны

Zaur
19.05.2017
19:15:09

Сергей
19.05.2017
19:15:20

Rafael
19.05.2017
19:15:36
а все, понял где

Сергей
19.05.2017
19:15:59
лол

Rafael
19.05.2017
19:16:55
го еще нетревиальных вопросов, это было интересненько
я кстати в прошлы раз, когда мы спорили о строчках, попытался поковыряться в v8, но ничего толкового понять не смог

Zaur
19.05.2017
19:17:40

Rafael
19.05.2017
19:19:08
где разрыв то?

Zaur
19.05.2017
19:19:39
В captureStackTrace же нет кучи вызовов runTasks, только последний. Значит переполнения стека нет.
А раз нет переполнения стека, значит это не рекурсия, а просто множественный вызов одной функции :) @Fl0pZz @sergeysova

Сергей
19.05.2017
19:23:23