给出以下架构。如何使用 prisma2 客户端查询每个存储库上的最新提交?
model Commit {
id String @default(uuid()) @id
date DateTime @default(now())
}
model Branch {
id String @default(uuid()) @id
commit Commit @relation(fields: [commitId],references: [id])
commitId String
repository Repository @relation(fields: [repositoryId],references: [id])
repositoryId String
}
model Repository {
id String @default(uuid()) @id
}
Run Code Online (Sandbox Code Playgroud) 我使用以下代码在 .map 函数上收到此错误:
此表达式不可调用。联合类型的每个成员 '((callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]) | ((callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[])' 有签名,但这些签名都不兼容。
type ResponseTypeA = {
data: number[];
}
type ResponseTypeB = {
data: string[];
}
const response: ResponseTypeA | ResponseTypeB = {
data: []
};
const data = response.data.map(t => {
if (typeof t === 'number') return String(t);
return t;
});
Run Code Online (Sandbox Code Playgroud)
关于如何在不使用的情况下解决此问题的任何想法any?
编辑:
这是我找到的解决方案:
type ArrayElem<A> = …Run Code Online (Sandbox Code Playgroud) 我不知道这是否可行,但我正在努力通过套接字发送命令的输出,以便在命令运行时它将显示在客户端和服务器计算机上.当我尝试使用反引号时,输出不会保存到变量中,直到命令完成,这对于运行需要很长时间的命令是不利的.
问题:是否有办法逐行扫描输出,说产生另一个过程并让它"观察"变量?
编辑:这是我尝试打开的
open DATA, "pause |" or die "Failed: $!";
while( defined(my $line = <DATA>)){
chomp($line);
print "$line\n";
}
Run Code Online (Sandbox Code Playgroud)
我想在命令完成之前显示输出.
我不知道我是不是意外地删除了或者在某处输入了一个错字,但突然之间我的一些代码停止了工作.出于某种原因,从$ in中没有读取任何行.
use Win32::Job;
use IO::Handle;
STDOUT->autoflush;
pipe my $in, my $out;
my $job = Win32::Job->new;
sub flush_pipe{
while (defined(my $line = <$in>)) {
chomp($line);
print($line);
}
}
my $pid = $job->spawn("cmd", "cmd /C \"ipconfig\"",
{
stdout=>$out
}
);
flush_pipe();
Run Code Online (Sandbox Code Playgroud)
编辑:通过反复试验,我最终发现在冲洗管道之前我必须关闭$ out文件句柄.