小编Kes*_*vid的帖子

如何在退出时执行异步操作

在我的进程终止之前,我一直在尝试执行异步操作.

说"终止"是指终止的所有可能性:

  • ctrl+c
  • 未捕获的异常
  • 崩溃
  • 代码结束
  • 什么..]

据我所知,exit事件是这样做的,但对于同步操作.

阅读Nodejs文档我发现该beforeExit事件是针对异步操作但是:

对于导致显式终止的条件,例如调用process.exit()或未捕获的异常,不会发出'beforeExit'事件.

除非打算安排额外的工作,否则不应将'beforeExit'用作'退出'事件的替代方案.

有什么建议?

asynchronous process terminate node.js typescript

17
推荐指数
4
解决办法
5316
查看次数

指令突然在@Component中无法识别

由于某种原因,无法识别元数据的directives属性@component,红色下划线..

图片

导致我的组件无法加载,浏览器的控制台尖叫:

'account-transactions' is not a known element:

真的很感激任何帮助,似乎无法弄清楚发生了什么.

提前致谢.

components webstorm angular

9
推荐指数
1
解决办法
2155
查看次数

引擎盖下的java中的易失性关键字

我和老师就volatilejava中的关键字进行了一些争论.说变量被声明为volatile:

该变量的值永远不会被线程本地缓存:所有读取和写入将直接进入"主存储器".

我老师的意见是:

volatile关键字保证变量的值将保存在主内存中.

有人能解决我们的冲突吗?谢谢!

java multithreading volatile

8
推荐指数
1
解决办法
688
查看次数

如何使用ngComponentOutlet对多种类型的组件进行ng?

我有一个类似whatsapp的聊天案例,需要以不同的方式显示许多类型的消息.

每个人都有自己的组件,如TextMessageComponent, FileMessageComponent等.

我希望能够ngFor在我的数组消息上完成一次,而不必ngIf超越类型.

我听说ngComponentOutlet可能是解决方案,但发现很难实现..

任何建议,迷你演示或任何有用的东西都将受到高度赞赏!

ngfor angular ng-component-outlet

8
推荐指数
1
解决办法
1913
查看次数

如何在ngFor之外使用*ngFor当前对象?

标题可能看起来很奇怪,但我所说的基本上就是这个链接正在做什么.

林寻找一种方式来使用迭代当前person<tr>了外面*ngFor范围.

在链接他用ng-repeat-startng-repeat-end包括多标签withing的ng-repeat.我如何能实现相同的行为使用withing Angular2 *ngFor

javascript ngfor angular

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

具有可选输入的 Angular2 子组件

TLDR: 可以@Input是可选的吗?

所以我有这个子组件,它是创建交易的模式(用银行术语来说),我想将此模式升级为创建或更新交易。

目前,模式只是一组输入字段和一个用于创建的提交按钮。我想要实现的是,当该组件获取交易作为输入时,它将处于“编辑模式”,如果没有,它将处于“创建模式”(这意味着输入字段已经填充了数据)在编辑模式下,在创建模式下为空)

可以@Input transaction以某种方式是可选的吗?

components angular

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

Sequelize upsert() 从不更新,只插入

所以我正在尝试使用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)

javascript sql postgresql upsert sequelize.js

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

无法关闭ng-bootstrap Modal

所以我在其中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)

javascript modal-dialog ng-bootstrap angular

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

AngFor2子组件在ngFor中意外销毁

所以我有一个来自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)

javascript components this ngfor angular

5
推荐指数
2
解决办法
1110
查看次数

如何分叉另一个模块的进程

TL; DR:如何分叉位于当前运行进程之外的进程?

我正在尝试使用child_processNodejs来启动父进程退出的另一个nodejs进程.

我成功地执行与过程exec,但我需要孩子的过程是独立于父母的,所以家长可以无需等待孩子退出,所以我尝试使用spawndetached: 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错误的解决方案也非常有用!

javascript fork child-process node.js

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