Цитата:
|
что такое "thunk" ?
|
Тоже хз
Я думаю, что это реализация либы, а не какая то нативная конструкция.
Цитата:
|
я так понял, с yield и thunk асинхронный код пишется, как синхронный. и он без callback'ов
|
Угу, сахарок
Но, как я уже говорил, что я пока не вижу киллер фич
И меня смущает, что в реализации на генераторах юзается концепция: sleep-check-sleep-check... и т.д. не будет ли это дополнительной нагрузкой на приложения на сервере при повсеместном использовании? ... Хотя, возможно внутри Co используется другой подход, т.к. в примере вижу, что асинхронная функция предварительно врапится, т.е. теперь вместо колбеков мы получаем другую боль в заднице - следить за проксированием асинхронных функций
Да и отлов ошибок через try-catch смущает, т.к. поведение JIT для кода внутри таких конструкций очень осторожно, а иногда и просто не применяется.
***
В общем я обязательно попробую Co в работе, чтобы на практике подтвердить или опровергнуть свои опасения
Но пока я всецело за простые колбеки с роутерами, будь то промисы или ещё что, т.к. это просто наглядней, имхо
co(function *(){
var a = yield get('http://google.com');
var b = yield get('http://yahoo.com');
var c = yield get('http://cloudup.com');
console.log(a[0].statusCode);
console.log(b[0].statusCode);
console.log(c[0].statusCode);
})()
VS
async.map(['http://google.com', 'http://yahoo.com', 'http://cloudup.com'], get, (err, results) => {
...
});
Ну хз, мне второй вариант более по душе