Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Categories:

Возвращаем значения через "глобальную" переменную

https://github.com/damnboy/dns-packet/blob/040b76d1772c7498ab281816b063e754529eee89/index.js#L12-L33

Это шыдевр! Суть токова. Вместо того, чтобы вернуть из функции 2 значения, второе возвращается в переменной в том же скоупе, что и функция:

var name = {}

name.encode = function (n, buf, offset) {
  ...
  name.encode.bytes = ...
  return buf
}

name.encode.bytes = 0
Вызывать так:
  name.encode(data, buf, offset + 2)
  buf.writeUInt16BE(name.encode.bytes, offset)
Дабл фейспалм.

Ирония заключается в том, что это лучшая из библиотек для работы с dns в ноде. В частности, она не содержит собственного NIH-евентлупа (отличного от нодовского. cares например содержит в сях свой). и не прячет от нас "нинужные" части пакетов.
Tags: programming, все пидарасы а я
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment