Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 02 2017 07:31
    @listochkin banned @Liberxue
  • Mar 17 2017 01:11
    @listochkin banned @BestJob23
  • Feb 28 2017 09:16
    @listochkin banned @ShotaMegre
  • Jan 31 2017 00:01
    @listochkin banned @ilona-dr
  • Dec 09 2016 11:25
    User @listochkin unbanned @hellboy81
  • Dec 08 2016 10:20
    User @ALF-er unbanned @alexander-shvets
  • Dec 07 2016 21:11
    User @sudodoki unbanned @xgrommx
  • Dec 07 2016 14:06
    @sudodoki banned @xgrommx
  • Dec 07 2016 14:06
    @sudodoki banned @alexander-shvets
  • Dec 02 2016 14:51
    @listochkin banned @hellboy81
  • Nov 01 2016 10:25
    @listochkin banned @ApeironRecruiting
  • Oct 29 2016 12:57
    User @sudodoki unbanned @ApeironRecruiting
  • Oct 29 2016 12:57
    @sudodoki banned @ApeironRecruiting
  • Oct 29 2016 12:57
    @sudodoki banned @ApeironRecruiting
  • Oct 29 2016 12:57
    User @sudodoki unbanned @ApeironRecruiting
  • Sep 04 2016 20:16
    User @sudodoki unbanned @yuriy-yarosh
  • Jun 08 2016 19:14
    @ALF-er banned @Alloffices
  • Mar 16 2016 15:58
    User @ALF-er unbanned @blia from this room
  • Mar 16 2016 15:53
    @ALF-er banned @blia
  • Mar 08 2016 13:42
    User @ALF-er unbanned @artuska from this room
Artem Zakharchenko
@blackrabbit99
те findOne становится findOneSync
backward compatibility остается это гуд
но мне кажется что можно трансформировать метод таким образом чтобы у него сразу был и promise и callback api
Eldar Djafarov
@edjafarov
а как он раздупляет где коллбек?
типа то что последнее то и коллбек?
стат анализ?
как?
Artem Zakharchenko
@blackrabbit99
последний аргумент функции
If you're working with functions that make use of the Node.js callback pattern, where callbacks are in the form of function(err, result), Q provides a few useful utility functions for converting between them. The most straightforward are probably Q.nfcall and Q.nfapply ("Node function call/apply") for calling Node.js-style functions and getting back a promise:
Eldar Djafarov
@edjafarov
хм… а если ф-ция вбрасывает несколько аргументов
у промиса эе только один
Artem Zakharchenko
@blackrabbit99
var deferred = Q.defer();
FS.readFile("foo.txt", "utf-8", deferred.makeNodeResolver());
return deferred.promise;
Alexey Raspopov
@alexeyraspopov

хм… а если ф-ция вбрасывает несколько аргументов
у промиса эе только один

массив?

Artem Zakharchenko
@blackrabbit99
вопрос в том, что нельзя брать и тупо промисифицировать
например find в mongo возвращает курсор
те find должен остаться со стандартным интерфейсом, а курсор уже обладать promise интерфейсом
// The most popular redis module
var Promise = require("bluebird");
Promise.promisifyAll(require("redis"));
а тут, говорят, все работает хорошо, но нет ничего, кроме мнений, которые это могут подтвердить
This message was deleted
Artem Zakharchenko
@blackrabbit99
@edjafarov там произойдет что-то типа
findOneSync = function(){
var args = arguments;
var deferred = Q.defer();
args.push( deferred.makeNodeResolver());
return  this.findOne.apply(this, args);
}
Вот оборачивалка метода
Q.nbind = function (callback, thisp /*...args*/) {
    var baseArgs = array_slice(arguments, 2);
    return function () {
        var nodeArgs = baseArgs.concat(array_slice(arguments));
        var deferred = defer();
        nodeArgs.push(deferred.makeNodeResolver());
        function bound() {
            return callback.apply(thisp, arguments);
        }
        Q(bound).fapply(nodeArgs).fail(deferred.reject);
        return deferred.promise;
    };
};
я делаю
var Promise = Q.nbind(this.myFunc, this)(args)
Андрей Листочкин (Andrey Listochkin)
@listochkin
Ну, вот как я, например, делаю:
promisify = require('bluebird').promisify
http = promisify(function (options, cb) {
  request(options, function (error, response, body) {
    cb(error, response);
  })
})

http({ .. }).then((response) => { .. }, (error) => { .. })
request в колбек передает 3 аргумента вместо двух, поэтому приходится 3 лишних строки писать
Eldar Djafarov
@edjafarov
@/all
KyivJS будет 6 июня
приглашаем спикеров - стучитесь в мыло djkojb@gmail.com
Illia Seheda
@ALF-er

а зачем вообще, всё это? Почему нельзя просто

function http(options) {
   return new Promise(function(resolve, reject) {
   });
}

?

Artem Zakharchenko
@blackrabbit99
@listochkin ты переопределяешь это глобально или для отдельных модулей?
Андрей Листочкин (Andrey Listochkin)
@listochkin

не, тут вопрос в том, что для, например, jsdom будет:

dom = promisify(jsdom.env)

одной строкой

@blackrabbit99 если оно во многих местах нужно, я делаю модуль, который уже http экспортирует
глобально я сейчас только require переопределяю, чтобы babel компилировал
но там api не изменяется, так что ничего потенциально опасного
Artem Zakharchenko
@blackrabbit99
у меня вообще была идея трансформить методы в что-то типа
var myfunc = function(params, callback){
    var defer = Promise.defer();
    //staff
    if(a > 1){
        callback(null, data);
        defer.resolve(data);
    }else{
        callback(err, null);
        defer.reject(data);
    }

    return defer.promise;
}
чтобы как говорить и рыбку съесть
Джон, просто Джон
@sudodoki
@edjafarov Лайтнинг токи будут?
Eldar Djafarov
@edjafarov
еще незнаем, может и будут
пока спикеров набираем
@edjafarov где можно подписаться, чтобы быть в курсе?
Eldar Djafarov
@edjafarov
@termosa мой твиттер (https://twitter.com/edjafarov) Макса (https://twitter.com/maxmaxmaxmax) и тут, в гиттере
Stepan Suvorov
@stevermeister
а кто бы мне подсказал максимально легкую JS библиотеку для форматированного вывода HTML? (достаточно показывать вложенность, без подсветки)
Uladzimir Havenchyk
@havenchyk

question ребята, надо подружить canvas с тегом object, такое возможно?

конкретно context.drawImage(objectTag, ...)

Artem Zakharchenko
@blackrabbit99
что такое тег object?
Alexey Migutsky
@mr-mig
@dmpwrd :point_up: May 5 2015 1:20 PM
Нет, не этот…
Artem Zakharchenko
@blackrabbit99
@stevermeister https://highlightjs.org/?
Uladzimir Havenchyk
@havenchyk
Illia Seheda
@ALF-er
там случаем не секьюрити рестрикшинс чтоб нельзя было скомуниздить чужое творчество?
Artem Zakharchenko
@blackrabbit99
@havenchyk ты можешь с object получить imageData?
если это изображение значит как-то можно, я не знаю если честно, орудую логикой
тут задача больше не подружить object и canvas
а понять что может отдать object