Как исправить & ldquo; одну проблему при проверке состояния гонки с помощью инструментов go-build-race & rdquo ;?

function getNonEnumerableNonOwnPropertyNames( obj ) {
    var oCurObjPrototype = Object.getPrototypeOf(obj);
    var arReturn = [];
    var arCurObjPropertyNames = [];
    var arCurNonEnumerable = [];
    while (oCurObjPrototype) {
        arCurObjPropertyNames = Object.getOwnPropertyNames(oCurObjPrototype);
        arCurNonEnumerable = arCurObjPropertyNames.filter(function(item, i, arr){
            return !oCurObjPrototype.propertyIsEnumerable(item);
        })
        Array.prototype.push.apply(arReturn,arCurNonEnumerable);
        oCurObjPrototype = Object.getPrototypeOf(oCurObjPrototype);
    }
    return arReturn;
}

Пример использования:

function MakeA(){

}

var a = new MakeA();

var arNonEnumerable = getNonEnumerableNonOwnPropertyNames(a);
2
задан Sunshine 18 January 2019 в 07:32
поделиться

1 ответ

Я предлагаю вам изучить планирование в го (хорошая статья из ardanlabs ).

Краткий ответ: вы не контролируете порядок выполнения, а Go Runtime делает. Каждое выполнение одной и той же программы не приведет к одному и тому же следу выполнения. Детектор гонки отслеживает «грубое» поведение при каждом запуске, и результаты напрямую зависят от решения планировщика.

0
ответ дан bayrinat 18 January 2019 в 07:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: