小编Nat*_*ins的帖子

创建一个从ES6 Map扩展的类

试图摆脱ES6 Maps上的自定义get/set功能.目前使用Babel将我的代码转换为ES5.

Chrome Version 41.0.2272.101 m

class MyMap extends Map {
    get(key) {
        if (!this.has(key)) { throw new Error(...); }
        return super.get(key);
    }

    set(key) {
        if (this.has(key)) { throw new Error(...); }
        return super.set(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

不确定我是否只是语法错误或者我错过了某种类型的实现.但是我收到以下错误:

方法Map.prototype.forEach调用不兼容的接收器

javascript inheritance ecmascript-6

18
推荐指数
1
解决办法
7501
查看次数

App Engine中的db.ReferenceProperty()与ndb.KeyProperty

ReferenceProperty在处理两个模块之间的引用时非常有用.Fox例子:

class UserProf(db.Model):
    name = db.StringProperty(required=True)

class Team(db.Model):
    manager_name = db.ReferenceProperty(UserProf, collection_name='teams')
    name = db.StringProperty(required=True)
Run Code Online (Sandbox Code Playgroud)
  • 要使用团队实例获取"manager_name",我们使用team_ins.manager_name.
  • 为了获得由特定用户实例管理的"团队",我们使用user_instance.teams并迭代.

它看起来不容易理解吗?

在使用NDB做同样的事情时,我们必须修改

db.ReferenceProperty(UserProf, collection_name='teams') - > ndb.KeyProperty(kind=UserProf)

  • team_ins.manager_name.get() 会给你经理的名字
  • 为了让特定用户的所有团队成为管理者,我们必须这样做

    for team in Team.query(Team.manager_name == user_ins.key): 
        print "team  name:", team.name
    
    Run Code Online (Sandbox Code Playgroud)

正如您所看到的,处理这些场景在db中看起来比ndb更容易和可读.

  • 在ndb中删除ReferenceProperty的原因是什么?
  • 甚至db的查询user_instance.teams也会像在ndb的for循环中那样做.但在ndb中,我们明确提到使用for循环.
  • 当我们执行user_instance.teams时,幕后发生了什么?

提前致谢..

python google-app-engine app-engine-ndb google-cloud-datastore

15
推荐指数
2
解决办法
4745
查看次数

如何从另一个Controller(ASP.NET Web API CacheOutput库)中使Web API缓存无效

我已经将ASP.NET Web API CacheOutput库用于我的web.net的asp.net项目并且它工作正常,但是我有一个POST方法的另一个控制器,我想从该控制器使我的缓存无效.

[AutoInvalidateCacheOutput]
public class EmployeeApiController : ApiController
{ 
    [CacheOutput(ClientTimeSpan = 100, ServerTimeSpan = 100)]
    public IEnumerable<DropDown> GetData()
    {
        //Code here
    }
}


public class EmployeesController : BaseController
{
    [HttpPost]
    public ActionResult CreateEmployee (EmployeeEntity empInfo)
    {
        //Code Here
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望在员工控制器中添加\ update时使Employees Cache无效.

asp.net-mvc outputcache asp.net-cache asp.net-web-api2

11
推荐指数
1
解决办法
2604
查看次数

如何禁用其他模块的记录器?

我在我的项目中使用了几个模块,但是,模块从记录器输出了大量日志,这很烦人.所以我通过以下方式关闭日志:

boto_log = logging.getLogger("boto")
boto_log.setLevel(logging.CRITICAL)
es_log = logging.getLogger("elasticsearch")
es_log.setLevel(logging.CRITICAL)
urllib3_log = logging.getLogger("urllib3")
urllib3_log.setLevel(logging.CRITICAL)
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但代码看起来很冗长.有没有更好,更简单的方法可以做到这一点?

python logging

8
推荐指数
3
解决办法
4219
查看次数

角度$广播和$昂贵吗?

我被告知使用角度事件可能很昂贵(我一直无法验证这一点)

对工厂或服务进行任何调用$broadcast$on应该"包装"以注入相应的组件以保持性能?

同样,我宁愿$on直接使用并直接监听被触发的事件,而不是创建一个工厂,它本质上只是在收到事件时注册要调用的函数 - 让我们称之为调度程序.

请注意,听到'some-event'不仅仅是一个组件(指令),还会有各种组件监听此事件.

示例调度员:

angular.module('app').factory('dispatcher', ['$rootScope', function ($rootScope) {

    var registeredFns = [ ];

    $rootScope.$on('some-event', function (evt, msg) { 
        _.each(registeredFns, function (fn) {
            fn.apply(null, msg);
        });
    });

    return {
        onSomeEvent: function (fn) {
            registeredFns.push(fn);
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

并将它注入我需要它的地方 - 也许是一个指令,也许是一个无关紧要的控制器.

javascript events broadcast javascript-events angularjs

6
推荐指数
1
解决办法
2041
查看次数

为什么我会在同步锁上得到NullPointerException?

我只有一个"简单"同步锁定块:

private final Object screenLock = new Object();

public void Update(double deltaTime)
{
    synchronized (screenLock)
    {
        screenManager.Update(deltaTime);
    }
}

public void Draw()
{
    synchronized (screenLock)
    {
        screenManager.Draw();
    }
}
Run Code Online (Sandbox Code Playgroud)

deltaTime不是null,screenManager不是null,所以我有点失落.

我知道我不应该锁定这么高的级别,但是无论我把Block放在哪里,问题都会存在.我有运行两个线程Update,并Draw均与screenLock.

什么会导致NullPointerException锁定?

跟踪:

来自com.dnx.manavo.GameThread.run的com.dnx.manavo.ScreenManager.Update(ScreenManager.java:107)的com.dnx.manavo.ApplicationActivity.Update(ApplicationActivity.java:98)中的java.lang.NullPointerException( GameThread.java:43)

java multithreading thread-safety

5
推荐指数
1
解决办法
3325
查看次数

如何在收到两个或更多$ scope事件后调用函数?

例如,假设我需要在收到两个事件"eventA"和"eventB"后运行一个函数.我通常做的是为每个事件声明一个布尔变量,在接收到事件时将变量设置为true,并询问另一个变量是否为true来运行该函数:

var a = false, 
    b = false;

$scope.$on("eventA", function(){
    a = true;
    if (b)
        performTask();
});

$scope.$on("eventB", function(){
    b = true;
    if (a)
        performTask();
});

var performTask = function() {
    /* do something... */
};
Run Code Online (Sandbox Code Playgroud)

如果有三个或更多事件,这会变得更复杂.是否有设计模式来处理这些情况?

angularjs

5
推荐指数
1
解决办法
1214
查看次数

翻转OpenGL ES 2.0 X-Axis?

我开始绘制Quad,但是当我开始使用Vertices时,我发现X坐标被翻转了.下面是一张图片来说明我的意思:

在此输入图像描述

这是我的顶点 - 指数和纹理坐标,我没有必要显示.

static final int COORDS_PER_VERTEX = 3;
static float positionCoords[] = { 
    -0.5f,  0.5f, 0.0f,   // top left
    -0.5f, -0.5f, 0.0f,   // bottom left
     0.5f, -0.5f, 0.0f,   // bottom right
     0.5f,  0.5f, 0.0f }; // top right

static final int COORDS_PER_TEXTURE = 2;
static float textureCoords[] = { 
    0.0f, 0.0f, 
    0.0f, 1.0f,
    1.0f, 1.0f,
    1.0f, 0.0f, };

private final short indices[] = { 0, 1, 2 };
Run Code Online (Sandbox Code Playgroud)

这是我更改投影和查看矩阵的地方.

public void onSurfaceChanged(GL10 naGl, int width, int height)
{ …
Run Code Online (Sandbox Code Playgroud)

java opengl-es opengl-es-2.0

4
推荐指数
1
解决办法
2449
查看次数

推出最新的Android版本到设备

有没有办法或应用程序允许我将我最新的Android构建推送到安装它的所有设备?我的应用尚未进入Google Play市场,但希望我的测试人员不必手动安装我推送的每个版本.

android distribution apk android-install-apk

4
推荐指数
1
解决办法
707
查看次数

DevTools控制台 - 将其关闭

我目前正在使用Javascript构建一个库,并且非常喜欢Google的DevTools来进行调试.不幸的是,当我发布时,我不希望我的库记录.

这就是我的记录器当前设置的方式.

var debug = false;

var increaseSomething = function()
{
    // Random Code...

    if (debug) { console.log("Increased!"); }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这非常烦人,我不应该在每次调用登录到控制台之前检查调试是否打开.

我可以尝试将控制台封装在我自己的日志记录对象中,但我觉得这不是一个好主意.有什么想法吗?

javascript logging google-chrome-devtools

4
推荐指数
1
解决办法
174
查看次数