我正在Angular2中实现一个简单的无限滚动指令.我正在使用@HostListener('window:scroll')滚动事件并解析数据$target.
问题是,对于每个滚动事件,一切都将被再次检查而不需要.
我检查了离子infinite-scroll指令的灵感,但他们没有使用@HostListener,我猜他们需要更精细的控制.
我在搜索https://github.com/angular/angular/issues/13248时最终遇到了这个问题,但找不到任何方法来做我想要的事情.
我想如果我创建一个Observable,用debounce和push(next)项目订阅它,我会达到我想要的行为,但我无法做到这一点.
我有一个电子应用程序,我不仅需要运行用户界面,还需要启动一个快速服务器,为通过网络连接的人提供文件.
如果我正常启动电子和快速服务器,我的一切都在工作,但我非常有信心我需要在不同的线程中运行服务器,以避免棘手的接口,甚至服务器的问题.
为此,我尝试使用child_process.fork运行我的快速服务器,它在我使用npm start时工作,但是当我electron-builder用来创建.exe时,安装的程序不会启动快速服务器.
我尝试使用以下命令立即运行我的服务器:
require('child_process').fork('app/server/mainServer.js')
我尝试了几个更改,为文件添加前缀__dirname,process.resourcesPath甚至对生成的文件路径进行硬编码; 更改fork选项以通过cwd: __dirname,detached: true和stdio: 'ignore'; 甚至尝试使用spawnwith process.execPath,它也可以使用npm start但不会在打包时(它会不断打开我的应用程序的新实例,看起来很明显)
注意:如果我不立即分叉并且需要服务器脚本,使用require('server/mainServer.js')它可以在打包的应用程序上运行,所以问题最不像快递本身.
注2:我必须asar: false解决其他问题,所以这不是解决问题的方法.
我提出了一个小git项目来显示我的问题:
https://github.com/victorivens05/electron-fork-error
任何帮助将受到高度赞赏.
所以,我正在使用这个新的框架http://nestjs.com/,因为它允许在Node上使用Typescript,所以看起来非常棒,很可能是有角度的.
使用启动程序https://github.com/kamilmysliwiec/nest-typescript-starter,我可以npm run start毫无问题地运行它,但由于项目中有.vscode,我假设我可以使用VS Code来运行和获取一些调试能力.
问题是当我直接从VS Code运行时,没有更改代码中的任何内容,我得到以下问题:
Error: Cannot find module 'nest.js'
我尝试从VS代码运行,无论是否从NPM运行,都没有成功.
提前致谢.
由于nestjs是一个快速应用程序,因此可以使用任何库来处理使用嵌套的上传,并且由于它提供了Midlewares,因此也可以使用multer.我的问题是:使用nestjs处理文件上传的最佳方法是什么?
我在寻找这个方面没有取得任何成功,因为我主要发现一些误导性的问题,关于人们想要使用来自电子应用程序内部服务器的数据。那不是我的情况。
我有一个常规应用程序,它使用互联网上的服务器,就像其他任何应用程序一样,但我们希望将其提供给没有互联网的学校(没有任何或没有可靠的互联网),所以我想做的是创建我的服务器的一个版本,它从一个电子exe运行,并为连接到wifi(但没有互联网)的学生提供文件访问。该过程“离线”完成后,我将从电子应用程序本身同步数据。
我尝试从Express运行服务器,但到目前为止没有任何进展。我尝试将节点服务器中的完全相同的代码放入 main.js 文件中,但没有成功。
我知道这不是电子应该做的,如果你确信没有办法做到这一点,请告诉我,以便我可以寻找另一种选择。
我正在尝试将Immer与已经使用Typescript的react项目一起使用。我在文档或其他任何地方都找不到如何在Typescript中实际使用immer的方法。
到目前为止,我有:
export interface IProps { }
export interface IState {
names: string[]
}
export class ListNames extends React.Component<IProps, IState> {
constructor(props: IProps) {
super(props)
this.state = { names: [] }
}
addName = (name: string) => {
this.setState(produce(draftState => {
draftState.names.push(name)
}))
}
...
}
Run Code Online (Sandbox Code Playgroud)
这给了我两个错误:
[ts] Object is possibly 'null'[ts] Property 'names' does not exist on type 'DraftObject<Pick<IState, never>>'设置的类型draftState来IState将无法正常工作。我做了什么,使得它的工作是铸draftState到IState之前,我使用它。
问题是:我可能想多次使用draftState,所以至少很不方便。
将Immer与Typescript一起使用的正确方法是什么?