• Как работает Promise.resolve в Javascript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    const deferred = () => {
      Promise.prototype.resolve = () => {}; // чтобы не было ошибок )
      return Promise.resolve("web");
    }


    «Нормальное» решение:
    // проверка
    deferred()
      .then(function(res) {
        console.log(200, res);
        return "lab";
      })
      .then(function(res) {
        console.log(100, res);
      })
      .resolve("web");
    
    // реализация
    function deferred() {
      function Box() {
        this.queue = [];
      }
    
      Box.prototype.then = function(func) {
        this.queue.push(func);
        return this;
      }
    
      Box.prototype.resolve = function(first_arg) {
        let arg = first_arg;
        while (this.queue.length)
          arg = this.queue.shift().call(this, arg);
      }
    
      return new Box;
    }
    Ответ написан
    3 комментария