相关疑难解决方法(0)

什么是明确的承诺构建反模式,我该如何避免它?

我编写的代码看起来像:

function getStuffDone(param) {           | function getStuffDone(param) {
    var d = Q.defer(); /* or $q.defer */ |     return new Promise(function(resolve, reject) {
    // or = new $.Deferred() etc.        |     // using a promise constructor
    myPromiseFn(param+1)                 |         myPromiseFn(param+1)
    .then(function(val) { /* or .done */ |         .then(function(val) {
        d.resolve(val);                  |             resolve(val);
    }).catch(function(err) { /* .fail */ |         }).catch(function(err) {
        d.reject(err);                   |             reject(err);
    });                                  |         });
    return d.promise; /* or promise() */ |     });
}                                        | }
Run Code Online (Sandbox Code Playgroud)

有人告诉我这个被称为" 延迟反模式 "或" Promise构造函数反模式 ",这个代码有什么不好,为什么这被称为 …

javascript promise q bluebird es6-promise

479
推荐指数
3
解决办法
7万
查看次数

在方法中的箭头函数内的箭头函数内使用`super`

我试图弄清楚我在Node v4.1.1(V8 v4.5.103.33)中看到的关于super和箭头函数的某些行为是否是指定行为,如果是这样(或者实际上,如果不是),哪里它说它应该(或不应该)在我所拥有的各种情况下工作的规范.

简言之:使用super箭头函数(inner)内的另一个箭头功能(outer)内的方法的工作,除非 outer有参数还是变量inner即使引用,inner引用参数或变量method.我想知道规范对此的说法:它是否应该一直有效,即使在V8失败的情况下?没有时间?只有在V8目前让它工作的特定情况下,而不是它不在哪里?

这是一个MCVE:

"use strict";

class Parent {
    show(msg) {
        console.log(`Parent#show: ${msg}`);
    }
}

class Child extends Parent {
    method(arg) {
        let outer = (x) => {
            console.log(`outer: x = ${x}`);
            let inner = () => {
                super.show(`arg = ${arg}, x = ${x}`);
            };
            inner();
        };
        outer(42);
    }
}

new Child().method("arg"); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-2015

20
推荐指数
1
解决办法
1565
查看次数

标签 统计

javascript ×2

bluebird ×1

ecmascript-2015 ×1

es6-promise ×1

promise ×1

q ×1