我整个上午都在阅读这篇文章,试图正确设置我的环境.但由于某种原因,我没有得到它.我的设置 -
/app
... source (mixed js and ts)
/scripts
... copied source (js)
typescripts.js // transpiled typescript with inline mapping
Run Code Online (Sandbox Code Playgroud)
测试运行正常,并且chrome调试器中的映射调试已正确映射.但伊斯坦布尔将typescripts.js
文件视为一个文件,而不是几十个其他文件的串联.
要生成我正在使用的打字稿源gulp-typescript
.源(不包括测试)被转换为前面提到的typescripts.js
,测试被单独转换并复制到/scripts
.
var ts = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
module.exports = function (gulp, config) {
'use strict';
// Runs dot ts files found in `www` through the typescript compiler and copies them as js
// files to the scripts directory
gulp.task('typescript', ['typescript:tests'], function () {
return …
Run Code Online (Sandbox Code Playgroud) 希望这是一个简单的问题.我正在尝试使用es6 import-from样式导入MongoDB.如果我导入使用节点要求它工作正常.
let mongo = require('mongodb');
let MongoClient = mongo.MongoClient;
Run Code Online (Sandbox Code Playgroud)
但是,如果我以es6方式导入它,它会在没有错误或日志的情况下中断.
import {MongoClient} from 'mongodb';
Run Code Online (Sandbox Code Playgroud)
但是在编译/运行时它不会中断它只会在我尝试使用MongoClient执行任何操作时中断.
这是我的Db Manager课程 -
import {MongoClient} from 'mongodb';
export class DbManager {
constructor() {
console.log('Constructing DB Connection');
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的服务器时,我从其他管理器和事件中获取了几个日志.
mycomputer myuser$ ./start.sh
Server Constructing
Route Manager Constructing
Initializing Route: Static
Constructing DB Connection
http server started on port: 8000
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行MongoClient的console.log,则根本没有输出.
import {MongoClient} from 'mongodb';
export class DbManager {
constructor() {
console.log('Constructing DB Connection');
console.log(MongoClient);
}
}
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样 -
mycomputer myuser$ ./start.sh
mycomputer myuser$
Run Code Online (Sandbox Code Playgroud)
没有编译错误,所以我不明白为什么这不起作用.此外,我不明白为什么没有任何日志!这是最后发生的事情之一,至少应该记录,直到我想到这一点.如果你想 …
出于某种原因,当我在我的路线中有一个动态属性并访问该页面时,我陷入无限循环,在那里该页面将不断请求自己.
.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider)
{
$locationProvider.html5Mode(true);
$routeProvider.when("/", {
templateUrl: "pages/index.html",
controller: "IndexCtrl"
}).when("/listhome", {
templateUrl: "pages/listhome.html",
controller: "ListHomeCtrl"
}).when("/profile", {
templateUrl: "pages/profile.html",
controller: "ProfileCtrl"
}).when("/newlist", {
templateUrl: "pages/newlist.html",
controller: "NewListCtrl"
}).when("/userlists/:id", {
templateUrl: "pages/userlists.html",
controller: "UserListsCtrl"
}).otherwise({
redirectTo: "/"
});
Run Code Online (Sandbox Code Playgroud)
我正在查看的路由是/ userlists /:id路由.该路线的控制器是 -
TopTenApp.controller("UserListsCtrl", ["$scope","$routeParams", function($scope, $routeParams)
{
console.log($routeParams);
$scope.lists = [];
}]);
Run Code Online (Sandbox Code Playgroud)
当我访问/ userlists/9时,我看到 -
Object {id: "9"}
Run Code Online (Sandbox Code Playgroud)
每3秒登录一次,页面冻结.只要位置后面有正斜杠("/ userslists /"而不是"/ userlists"),这似乎就会发生.
有谁知道这个的原因?
我很难理解 DDB 提供条件写入但最终保持一致的二分法。这两个事实似乎互相矛盾。
在经典场景中,用户 Bob 更新密钥 A 并将值设置为“FOO”。用户 Alice 从尚未收到更新的节点读取数据,因此它获得同一密钥的原始值“BAR”。
如果 Bob 和 Alice在没有条件检查的情况下写入集群上的不同节点,则可能会发生冲突,Alice 和 Bob 同时写入同一密钥,并且 DDB 不知道哪个更新应该是最新的。客户端必须在下次读取时解决此冲突。
但是当使用条件写入时呢?
如果 A 的现有值为“BAR”,则用户 Bob 将其对 A 的更新发送为“FOO”。如果 A 的现有值为“BAR”,则用户 Alice 将其对 A 的更新发送为“BAZ”。
在本地,每个节点都可以检查其节点是否具有原始“BAR”值并进行更新。但要了解集群中 A 的真实状态的唯一方法是首先在集群中进行强一致性读取。这种强一致性读取必须对 Alice 或 Bob 造成阻塞,或者他们可以同时进行强一致性读取。
所以这就是我对 DDB 条件写入的性质感到困惑的地方。在我看来:
如果是#2,我认为有效的唯一方法是:
假设它是#2。现在鲍勃的更新在哪里呢?更新已对节点 2 进行并发送到节点 1,并且我们拥有多数法定人数。但是为了让 Alice 在执行自己的条件写入时可以使用这些更新,需要从 WAL 中刷新这些更新。那么在条件写入中更新总是会刷新吗?一般来说,写入总是刷新吗?
SO 上还有其他类似的问题,但答案是有关此问题的 AWS 文档的重复或链接。AWS文档并没有真正解释这一点(或者我错过了)。
我知道可以检查一个类是否实现了另一个类(如果它们确实相关)。
class A(ABC):
@abstractmethod
@property
def name(self):
raise NotImplementedException()
class B(A):
@property
def name(self):
return "B"
implements(B(), A) # Not a real method, what i'd like to exist
Run Code Online (Sandbox Code Playgroud)
但我还想检查一个不相关的类是否根据类的内容实现了另一个类。
Class C:
@property
def name(self):
return "C"
implements(C(), A) # Not a real method, what i'd like to exist
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以做到这一点,或者我是否需要编写一个自定义函数来比较所有方法及其方法签名?
我刚刚使用ng2 cli安装了一个bearbones ng2 app.在我的AppModule
添加中schema: [ CUSTOM_ELEMENTS_SCHEMA ]
,在我的AppComponent
模板中,我有<row></row>
.但我得到 -
未处理的Promise拒绝:模板解析错误:'row'不是已知元素:1.如果'row'是Angular组件,则验证它是否是此模块的一部分.2.如果'row'是Web组件,则将"CUSTOM_ELEMENTS_SCHEMA"添加到此组件的'@NgModule.schemas'以禁止显示此消息.("[错误 - >]
AppModule-
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
AppComponent-
import { Component …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在弹性 beanstalk 应用程序上实现正常关闭,并且我已经整理了此关闭测试 -
主要的-
public class Main {
public static void main(String[] args) throws InterruptedException {
ShutdownTest shutdownTest = new ShutdownTest();
shutdownTest.run();
System.out.println("END OF MAIN");
}
}
Run Code Online (Sandbox Code Playgroud)
测试班-
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ShutdownTest {
private volatile long jobEnd;
private volatile boolean shutdown = false;
public void run() throws InterruptedException {
Thread mainThread = Thread.currentThread();
Thread shutdownHook = new Thread(() -> {
runShutdownTimer();
try {
System.out.println("Got shutdown signal.");
shutdown = true;
mainThread.join();
} catch(Exception e) {
System.out.println(e);
} …
Run Code Online (Sandbox Code Playgroud) 我有一个用于其他项目的共享 ts 库。该库中的资源可供同一库中的其他资源使用。components/*
该库由、interfaces/*
、等目录组成。services/*
每个目录的根目录都有一个index.ts
文件,用于重新导出该目录中的资源。这样使用项目就可以导入如下资源:
import { FooService, BarService } from 'mylib/services';
Run Code Online (Sandbox Code Playgroud)
代替:
import { FooService } from 'mylib/services/foo-service';
import { BarService } from 'mylib/services/bar-service';
Run Code Online (Sandbox Code Playgroud)
令人烦恼的是,如果我使用index.ts
这样的文件,WebStorm 会建议我用它导入所有库本地资源。我绝对不想这样做,因为它在过去导致了意外的循环依赖。在库本身内,如果components/foo-component.ts
想要导入FooService
,它应该始终导入 from../services/foo-service.ts
和 not ../services
。
但我无法让 WebStorm 忽略这些索引文件而不将它们标记为纯文本。即使我排除index.ts
in 中命名的文件Preferences > Directories
,它们仍然会显示为包含的选项。
如何告诉 WebStormindex.ts
在搜索导入时忽略文件?并且不要再烦我我的进口可以缩短。
我遇到一种情况,需要在身份验证令牌过期之前重新验证 cordova 应用程序上的令牌。为此,我想我应该在身份验证令牌到期之前设置一个超时,以重新进行身份验证。
function authenticate() {
var token = ... get token
setTimeout(function() {
.. try to reauthenticate
}, token.expiresIn - 600*1000);
}
Run Code Online (Sandbox Code Playgroud)
我看到的问题是-
当应用程序处于睡眠状态时,超时时间已过。功能不火?
当应用程序处于睡眠状态时,超时“倒计时”(如果是这样的话)会暂停。
这些都不是好的场景。所以我的问题是,当应用程序失去焦点时超时会发生什么?我是否应该设置 10 秒的时间间隔来检查此场景的过期时间?
编辑:
假设令牌的有效期为 4 小时。如果用户使用该应用程序一小时,最小化它 2 小时并返回,该函数会在 1 小时还是 3 小时内调用?这将是间隔的点,所以我可以相对快速地检查情况。
我想sys.exit()
在 python 调试器停止时强制。当我停止调试器时,我看到了Terminated: 15
所以我认为这是SIGTERM
. 但是,当停止调试器时,我的 kill 函数没有被调用。
def kill(sig, frame):
sys.exit(0)
signal.signal(signal.SIGINT, kill)
signal.signal(signal.SIGTERM, kill)
Run Code Online (Sandbox Code Playgroud)
停止vscode调试器时,发送什么信号?
编辑:
刚刚尝试了所有这些。没爱
for s in signal.Signals:
try:
signal.signal(s, self._kill)
except:
pass
Run Code Online (Sandbox Code Playgroud) javascript ×3
python ×2
typescript ×2
angular ×1
angularjs ×1
cordova ×1
ecmascript-6 ×1
gulp ×1
istanbul ×1
java ×1
karma-runner ×1
mongodb ×1
node.js ×1
routes ×1
systemjs ×1
webstorm ×1