小编Joy*_*nda的帖子

Neo4j - 图数据科学库 - 如何对图目录中的命名图进行密码查询?

从主 Neo4j 图表创建命名图表已被记录。此外,人们还知道如何列出、删除、检查命名图是否已存在,例如CALL gds.graph.exists('my-store-graph') YIELD exists;

但是,我想知道是否有任何方法可以针对刚刚创建的命名图进行密码查询

一种解决方法是将此命名图推送到离线/空Neo4j 图,即CALL gds.beta.graph.export('my-graph', { dbName: 'mydatabase' }). 然而,这种方法不太方便,因为我们经常想在应用之前检查命名图是否正确投影,例如其上的PageRank。并且预测可能是一个反复试验的循环。

neo4j graph-databases cypher graph-data-science

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

TypeScript:从 JSON 反序列化为可区分联合

鉴于打字稿代码片段:

class Excel {
    Password: string;
    Sheet: number;
}

class Csv {
    Separator: string;
    Encoding: string;
}

type FileType = Excel | Csv

let input = '{"Separator": ",", "Encoding": "UTF-8"}';

let output = Object.setPrototypeOf(JSON.parse(input), FileType.prototype)   // error!
Run Code Online (Sandbox Code Playgroud)

在 TypeScript/Javascript 中,要从 JSON 反序列化,可以使用Object.setPrototypeOf(),其第二个参数需要“原型”。对于类,例如Excel,一个人可以做Excel.prototype。但是使用上面的 Discriminated Union,我遇到了一个错误:

error TS2693: 'FileType' only refers to a type, but is being used as a value here.
Run Code Online (Sandbox Code Playgroud)

题:

  1. 有没有办法反序列化 TypeScript 中的可区分联合?
  2. 如果没有,是否有任何其他优雅的方式来实现上述场景(给定两个类:Excel/Csv和 JSON 字符串序列化它们中的任何一个;取回正确的实例化对象),无论使用什么技巧、类、类继承、接口、有区别的联合或不...?

环境 …

serialization discriminated-union typescript

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

在 Jupyter Notebook 单元中同步执行 javascript

在 Jupyter Notebook 中,我们可以直接执行 Javascript/HTML 单元格以丰富 Notebook 显示,例如交互式Vis.js图形,这要归功于以下内容import

from IPython.display import Javascript
from IPython.core.display import display, HTML
Run Code Online (Sandbox Code Playgroud)

我有以下笔记本单元格:

  • 单元格 1:注册一个实用程序函数,以便以后可以多次调用它。
%%javascript
requirejs.config({
    paths: {
        vis: 'vis'
    }
});

require(['vis'], function(vis){
    function drawNetworkGraph() {
    ...
    }
    window.drawNetworkGraph = drawNetworkGraph;
});
Run Code Online (Sandbox Code Playgroud)
  • 单元格 2:尝试调用效用函数。
transfer_data_from_python_to_javascript = "..."
display(Javascript(transfer_data_from_python_to_javascript))
display(Javascript("""window.drawNetworkGraph();""")) // <-- problem here!
Run Code Online (Sandbox Code Playgroud)

在 Notebook 中执行“全部运行”时,我window.drawNetworkGraph is not a function在 DevTools 控制台中得到了一个竞争条件。

这是由于require(, function(){})在 Cell 1 中异步运行。浏览器加载vis库需要一些时间;并且当它完成加载时,它将调用在 的第二个参数中声明的函数require()。此时,Jupyter Notebook 已经执行了 Cell …

javascript python vis.js jupyter-notebook

5
推荐指数
0
解决办法
266
查看次数

setTimeOut() 在 Angular Lifecycle Hooks 中重复:ngDoCheck、ngAfterContentChecked、ngAfterViewChecked

再现性

我有一个小的 TypeScript 代码片段,如下所示:

ngAfterViewChecked(){
    console.log("ngAfterViewChecked 1");
    setTimeout(() => {
      console.log("ngAfterViewChecked 2");
    }, 1000);
  }
Run Code Online (Sandbox Code Playgroud)

函数setTimeOut()应该在 1 秒后调用 lambda 函数,然后停止。然而,钩子 ngAfterViewChecked() 被连续调用(摘自 Chrome 开发者工具控制台):

00:36:50.827 home.component.ts:53 ngAfterViewChecked 1
00:36:51.842 home.component.ts:55 ngAfterViewChecked 2
00:36:51.843 home.component.ts:53 ngAfterViewChecked 1
00:36:52.843 home.component.ts:55 ngAfterViewChecked 2
00:36:52.844 home.component.ts:53 ngAfterViewChecked 1
00:36:53.845 home.component.ts:55 ngAfterViewChecked 2
00:36:53.846 home.component.ts:53 ngAfterViewChecked 1
00:36:54.848 home.component.ts:55 ngAfterViewChecked 2
...
Run Code Online (Sandbox Code Playgroud)

如果没有setTimeOut(),函数ngAfterViewChecked()被调用一次。也有发生此问题ngDoCheck()ngAfterContentChecked()

使用其他 Angular Lifecycle Hooks 进行测试

在, , , 中声明的同一个代码体, …

settimeout angular

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