TypeError: object is not a function

Причина:
Написал typeof вместо instanceof

[ ]
 

nullnullnunlnununnuulll

JSON.stringify(value,null,4)

nil JSON JOSN JSOSH

[ ]
 

Блядь! Какого хера оно его выполняет вместо возврата deferred? Пиздец!

q = require("q")

a = q.Promise (resolve,reject,notify) ->
  setTimeout(
    ->
      bu = Math.random() * 100
      console.log("a", bu)
      resolve(bu)
    ,
    Math.random() * 3000
  )  

b = q.Promise (resolve,reject,notify) ->
  setTimeout(
    ->
      bu = Math.random() * 100
      console.log("b", bu)
      resolve(bu)
    ,
    1000 + Math.random() * 3000
  ) 

Результат вызова:

$ coffee promises_all.coffee 
Running node v0.11.13
a 83.59919420909137
b 5.926010990515351

Ну и что с этим блядь делать? Блядь. Блядь. Блядь.

q = require("q")

q.all([

  q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("a", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    )
  ,
  q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("b", bu)
        resolve(bu)
      ,
      1000 + Math.random() * 3000
    ) 
    
])
.then (pizdec) ->
  console.log pizdec

Результат вызова:

$ coffee promises_all.coffee 
Running node v0.11.13
a 28.216111892834306
[ 28.216111892834306 ]
b 73.70093793142587

Сука блядь сука блядь сука блядь сука блядь. Эта сука блядь нихуя не понимает блядь что там блядь массив блядь вместо этого блядь она компилируется блядь в полную блядь хуйню блядь хотя блядь все отступы блядь расставлены блядь правильно блядь сука блядь. Вот блядь правильный вариант, блядь. Скобочек ей не хватает блядь сука блядь что за тупизм блядь.

q = require("q")

q.all([

  (a = q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("a", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    )
  ),
  (b = q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("b", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    ) 
  )

])
.then (pizdos) ->
  console.log pizdos

console.log a,b

Результат вывода:

$ coffee promises_all.coffee 
Running node v0.11.13
{ state: 'pending' } { state: 'pending' }
a 87.82047459390014
b 66.98890661355108
[ 87.82047459390014, 66.98890661355108 ]

В общем, грустно всё это.

(function(root, factory) {

  // это для загрузчика модуля АМД
  if (typeof define === 'function' && define.amd) { // то есть, если можем дотянуться до define с amd,
    define(['underscore', 'jquery', 'exports'], function(_, $, exports) { // то им модуль и создадим
      // а вдруг кто-то ждет бэкбон еще и в глобальном объекте
      root.Backbone = factory(root, exports, _, $);
    });

  // это для Node, где jQuery не нужен
  } else if (typeof exports !== 'undefined') {
    var _ = require('underscore');
    factory(root, exports, _);

  // это для браузера
  } else {
    root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));
  }

}(this, function(root, Backbone, _, $) { }));
[ ]
 

npm install -g git+https://git@github.com/aseemk/json5.git

Use JSON5. Don't use JSON.

Objects and arrays can have trailing commas
Object keys can be unquoted if they're valid identifiers
Strings can be single-quoted
Strings can be split across multiple lines
Numbers can be hexadecimal (base 16)
Numbers can begin or end with a (leading or trailing) decimal point.
Numbers can include Infinity and -Infinity.
Numbers can begin with an explicit plus (+) sign.
Both inline (single-line) and block (multi-line) comments are allowed.

http://json5.org/
https://github.com/aseemk/json5

[ ]
 

sudo npm install -g git+https://git@github.com/alubbe/coffee-script.git

[ ]
 

Возникает не от того, что не работает код if(undefined) а из-за того, что в namespace отсутствует переменная с таким названием. Скорее всего опечатка, либо клонированный код с неверным именем переменной.

[ ]
 

Код ведёт себя настолько непредсказуемо, что после очередного выполнения, хочется в него просто плюнуть.

[ ]
 

javascript push into array while continue to loop it

    var a = [1,2,3]
    for(var i = 0; i < a.length; i++)
    {
        if(a[i] == 2)
        {
            a.push(4)
        }
        console.log(a[i])
    }
    console.log(a)

Output:

1
2
3
4
[ 1, 2, 3, 4 ]

[ ]
 

Генератор для перебора бесконечных ветвящихся неповторяющихся последовательностей (неслучайных чисел с шагом 1).

module.exports = (function(){

    var self = {}

    self.constructor = function()
    {
        if(!(this instanceof self.constructor))
        {
            return new (Function.prototype.bind.apply(self.constructor, [null].concat(Array.prototype.slice.call(arguments))))
        }
        this.pointer = -1
        this.sequence = []
        this.exhausted = false
        this.roundcount = 0
    }

    self.debug = function()
    {
        console.log(JSON.stringify([this.exhausted,this.sequence,this.pointer,this.roundcount]))
    }

    self.currentRound = function()
    {
        return this.roundcount
    }

    self.currentValue = function()
    {
        return this.sequence[this.pointer]
    }

    self.nextValue = function(min,max)
    {
        this.pointer++
        if(this.sequence[this.pointer] == null)
        {
            this.sequence[this.pointer] = { max : max, min : min, val : min }
        }
        return this.sequence[this.pointer].val
    }

    self.nextRound = function()
    {
        if(this.sequence[this.pointer] != null 
        && ++this.sequence[this.pointer].val > this.sequence[this.pointer].max)
        {
            this.sequence.splice(this.pointer,1)
            this.pointer--
            if(this.pointer == -1)
            {
                this.exhausted = true
            }
            else
            {
                this.nextRound()
            }
        }
        this.pointer = -1
        this.roundcount++
        return
    }

    self.constructor.prototype = self
    return self.constructor

})()
NotRand = require('./NotRand.js')

var i = 0;
var a = NotRand()
while(!a.exhausted)
{
    var b = []
    b.push(a.nextValue(1,1))
    b.push(a.nextValue(1,4))
    if(b[1] == 3)
    {
        b.push(a.nextValue(1,3))
        b.push(a.nextValue(1,3))
    }
    else
    {
        b.push(a.nextValue(1,2))
    }
    a.nextRound()
    console.log(b)
}
console.log(a.currentRound())
$ node pereborjs.js 
[ 1, 1, 1 ]
[ 1, 1, 2 ]
[ 1, 2, 1 ]
[ 1, 2, 2 ]
[ 1, 3, 1, 1 ]
[ 1, 3, 1, 2 ]
[ 1, 3, 1, 3 ]
[ 1, 3, 2, 1 ]
[ 1, 3, 2, 2 ]
[ 1, 3, 2, 3 ]
[ 1, 3, 3, 1 ]
[ 1, 3, 3, 2 ]
[ 1, 3, 3, 3 ]
[ 1, 4, 1 ]
[ 1, 4, 2 ]
23