在我的进程终止之前,我一直在尝试执行异步操作.
说"终止"是指终止的所有可能性:
ctrl+c 据我所知,exit事件是这样做的,但对于同步操作.
阅读Nodejs文档我发现该beforeExit事件是针对异步操作但是:
对于导致显式终止的条件,例如调用
process.exit()或未捕获的异常,不会发出'beforeExit'事件.除非打算安排额外的工作,否则不应将'beforeExit'用作'退出'事件的替代方案.
有什么建议?
由于某种原因,无法识别元数据的directives属性@component,红色下划线..
导致我的组件无法加载,浏览器的控制台尖叫:
'account-transactions' is not a known element:
真的很感激任何帮助,似乎无法弄清楚发生了什么.
提前致谢.
我和老师就volatilejava中的关键字进行了一些争论.说变量被声明为volatile:
该变量的值永远不会被线程本地缓存:所有读取和写入将直接进入"主存储器".
我老师的意见是:
volatile关键字不保证变量的值将保存在主内存中.
有人能解决我们的冲突吗?谢谢!
我有一个类似whatsapp的聊天案例,需要以不同的方式显示许多类型的消息.
每个人都有自己的组件,如TextMessageComponent, FileMessageComponent等.
我希望能够ngFor在我的数组消息上完成一次,而不必ngIf超越类型.
我听说ngComponentOutlet可能是解决方案,但发现很难实现..
任何建议,迷你演示或任何有用的东西都将受到高度赞赏!
标题可能看起来很奇怪,但我所说的基本上就是这个链接正在做什么.
林寻找一种方式来使用迭代当前person在<tr>了外面*ngFor范围.
在链接他用ng-repeat-start和ng-repeat-end包括多标签withing的ng-repeat.我如何能实现相同的行为使用withing Angular2 *ngFor?
@Input是可选的吗?所以我有这个子组件,它是创建交易的模式(用银行术语来说),我想将此模式升级为创建或更新交易。
目前,模式只是一组输入字段和一个用于创建的提交按钮。我想要实现的是,当该组件获取交易作为输入时,它将处于“编辑模式”,如果没有,它将处于“创建模式”(这意味着输入字段已经填充了数据)在编辑模式下,在创建模式下为空)
可以@Input transaction以某种方式是可选的吗?
所以我正在尝试使用model.upsert()ofsequelize并且我收到的所有内容都是 inserts ,无论我在查询中更改了什么。
我有一个事务模型,它有一些字段,带有默认生成的 id。
阅读续集的upsert文档我注意到这一点:
如果找到与主键或唯一键上提供的值匹配的行,则将执行更新。请注意,唯一索引必须在您的续集模型中定义,而不仅仅是在表中定义。
所以我猜我必须id在模型定义中定义事务的,所以我没有运气,因为它仍然只创建新条目..
TransactionModel = {
id: {
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
{.......}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我错过了什么?
任何解释和解决方案将不胜感激,提前致谢!
这是更新插入代码:
createOrUpdateTransaction: {
type: Transaction,
args: {
payerAccountNumber: {type: new GraphQLNonNull(GraphQLInt)},
recipientAccountNumber: {type: new GraphQLNonNull(GraphQLInt)},
amount: {type: new GraphQLNonNull(GraphQLFloat)},
currency: {type: new GraphQLNonNull(GraphQLString)},
paymentMethod: {type: new GraphQLNonNull(GraphQLString)},
cardNumber: {type: GraphQLFloat},
cardName: {type: GraphQLString},
cardNetwork: {type: GraphQLString},
cashMachineId: {type: GraphQLFloat},
receiptNumber: {type: new GraphQLNonNull(GraphQLFloat)},
invoiceNumber: {type: …Run Code Online (Sandbox Code Playgroud) 所以我在其中NgbModal有一个表单,我想要实现的是在成功提交时关闭它.
这是我的ModalComponent:
@Component({
selector: 'create-update-transaction',
templateUrl: './CreateOrUpdateTransaction.html',
providers: [AccountTransactionsService]
})
export class CreateOrUpdateTransactionComponent {
closeResult: string;
modalRef: NgbModalRef;
@Input() transaction: Transaction = new Transaction();
@Output() onSubmit: EventEmitter<void> = new EventEmitter<void>();
constructor(private modalService: NgbModal,
private transactionsService: AccountTransactionsService) {}
sendTransaction(): void{
let localModalRef = this.modalRef;
this.transactionsService.createOrUpdateTransaction(this.transaction, (isSuccessful)=>{
if (isSuccessful) {
this.onSubmit.emit();
localModalRef.close(); //<--- The problem is here
}
});
}
open(content) {
this.modalRef = this.modalService.open(content).result.then((result) => {
this.closeResult = `Closed with: ${result}`;
}, (reason) => {
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`; …Run Code Online (Sandbox Code Playgroud) 所以我有一个来自from的组件,该@Output事件在提交时触发,如下所示:
@Component({
selector: 'some-component',
templateUrl: './SomeComponent.html'
})
export class SomeComponent{
@Input() data: any;
@Output() onSubmit: EventEmitter<void> = new EventEmitter<void>();
constructor(private someService: SomeService) {}
submitForm(): void{
this.someService.updateBackend(this.data, ()=>{
this.onSubmit.emit();
});
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用ngFor创建该Component的多个元素:
<template let-data ngFor [ngForOf]="dataCollection">
<some-component [data]="data" (onSubmit)="doSomthing()"></some-component>
</template>
Run Code Online (Sandbox Code Playgroud)
最后缺少的部分是用于提交的服务:
@Injectable()
export class SomeService{
constructor() {}
updateBackend(data: any, callback: () => void): void{
/*
* updating the backend
*/.then((result) => {
const { errors, data } = result;
if (data) {
callback();
}
})
} …Run Code Online (Sandbox Code Playgroud) TL; DR:如何分叉位于当前运行进程之外的进程?
我正在尝试使用child_processNodejs来启动父进程退出的另一个nodejs进程.
我成功地执行与过程exec,但我需要孩子的过程是独立于父母的,所以家长可以无需等待孩子退出,所以我尝试使用spawn与detached: true, stdio: 'ignore'选项和unref()荷兰国际集团的过程:
将options.detached设置为true可以使子进程在父进程退出后继续运行.
spawn('node MY_PATH', [], {detached: true, stdio: 'ignore'}).unref();
这产生了:
node MY_PATH ENOENT错误.不幸的是,我的决心失败了.
在遇到麻烦spawn并再次阅读文档后,我想我应该实际使用fork:
child_process.fork()方法是child_process.spawn()的一个特例,专门用于生成新的Node.js进程.
fork()并没有把一个命令作为它的第一个参数,但是modulePath我似乎无法适应,因为我试图作为子进程运行的脚本不在当前运行进程的目录中,而是依赖于他的.
回到起始TL; DR - 如何分叉位于当前运行进程之外的进程?
任何帮助将非常感激!
编辑:
提供spawnENOENT错误的解决方案也非常有用!
angular ×6
javascript ×5
components ×3
ngfor ×3
node.js ×2
asynchronous ×1
fork ×1
java ×1
modal-dialog ×1
ng-bootstrap ×1
postgresql ×1
process ×1
sequelize.js ×1
sql ×1
terminate ×1
this ×1
typescript ×1
upsert ×1
volatile ×1
webstorm ×1