小编Pet*_*ter的帖子

GitHub GraphQL查询未返回上一次提交

在所有阅读的地方,我看到可以使用此GraphQL查询获取GitHub存储库的最新提交:

{
repository(owner: "petermorlion", name: "RedStar.Amounts") {
    defaultBranchRef {
      name
      target {
        ... on Commit {
          history(first: 1) {
            edges {
              node {
                committedDate
              }
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这可行。对于此存储库。如您所见(在撰写本文时),GraphQL ExplorerGitHub UI都说5月7日是最新提交:

GitHub UI结果

GitHub GraphQL结果

但是,如果我在另一个存储库上运行它,则会得到第一次提交。将所有者更改为ystk,并将存储库名称更改为debian-libidn。GraphQL告诉我最新的提交是2009年10月13日:

GitHub GraphQL错误结果

但是GitHub UI显示实际上是2011年5月13日:

GitHub UI正确结果

我的查询错了吗?我是否应该在orderby某个地方添加(我发现无法将其添加到history)?

github graphql

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

某些浏览器中的getElementById是可选的吗?

通过window.someThing访问元素时,"someThing"应该是html元素的名称.但我现在看到的是,我可以通过id以相同的方式访问元素,而无需document.getElementById.什么时候改变了?看起来它适用于Chrome,IE,Firefox 13,但不适用于Firefox 12.

例如:

<div id="MyDiv">Content</div>

<script>
    MyDiv.innerHTML = "New Content";
</script>
Run Code Online (Sandbox Code Playgroud)

为什么上面的例子有效?我为什么不这样做:

var MyDiv = document.getElementById('MyDiv');
Run Code Online (Sandbox Code Playgroud)

它是新的东西,还是一直有可能,我只是不知道它?

html javascript

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

在 RxJS NextObserver 中使用异步方法

我正在尝试在 NestJS 拦截器中使用异步函数。这些拦截器使用 RxJS Observables,如下所示:

@Injectable()
export class MyInterceptor implements NestInterceptor {
    async intercept<T>(context: ExecutionContext, next: CallHandler): Promise<Observable<T>> {
        await doBegin();
        return next
            .handle()
            .pipe(
                tap(
                    () => console.log("Done"),
                    (e) => console.error(e)
                )
            );
    }
}
Run Code Online (Sandbox Code Playgroud)

这可行,但是如果我希望方法是tap异步的怎么办?方法签名是:

(value: T) => void
Run Code Online (Sandbox Code Playgroud)

我可以在那里放置一个异步方法吗?或者我应该采取不同的方法?

async-await rxjs nestjs

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

ASP.NET linkbutton两次提高onBeforeUnload事件

我在这里发布了这个,但认为它本身可能值得一个问题.

我正在尝试做的是显示一个对话框,询问用户是否有未保存的更改时他/她是否要离开页面.一切正常.但问题描述如下:

有没有人遇到过Internet Explorer两次触发onb​​eforeunload事件的问题?谷歌搜索时,我发现它与(以及其他)一个ASP.NET链接按钮HTML代码的事实有关<a href="javascript: __doPostBack....

显然,当IE鼓励一个没有的链接时href="#",它会触发onb​​eforeunload事件.然后,当您确认我们正在显示的javascript对话框时,页面将执行"真实"卸载以导航到另一个页面,并再次引发onbeforeunload事件.

互联网上提供的解决方案是设置一个布尔变量并在显示对话框之前检查它.所以第二次,它不会显示.这一切都很好,但是当用户取消时,仍然会设置变量.因此,下次用户想要离开页面时,对话框将不再显示.

希望这有点清楚,我希望有人找到解决办法吗?

javascript asp.net

7
推荐指数
1
解决办法
6612
查看次数

如何隐藏WPF控件的一部分

是否可以隐藏WPF控件的一部分?根据MSDN,.NET 4有一个DatePicker,可以呈现4个部分.是否可以隐藏(在我的情况下)TextBox部分(可能名为PART_TextBox)?

我已经看到了完全设置DatePicker样式的例子,它涉及很多XAML,当我想要做的就是隐藏控件的一部分.

wpf styles datepicker wpf-controls

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

如何在一定时间后重复调用一个函数

我想创建一个在一定时间后调用的函数.此外,这应该在相同的时间后重复.例如,可以每60秒调用该函数.

java

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

如何在TextView中的选定文本上设置侦听器

我正在使用ActionMode.Callback,但我需要知道文本何时被选中...例如

在此输入图像描述

android textview

7
推荐指数
1
解决办法
4016
查看次数

为什么"new"运算符使用 - =来分离事件处理程序?

为什么我必须使用以下内容来分离事件?

object.myEvent -= new MyEvent(EventHandler);
Run Code Online (Sandbox Code Playgroud)

我对操作员的工作感到非常恼火.

有人可以解释一下吗?

更新

我已经知道我不必使用new运算符来分离事件,但它仍然是Visual Studio 2010中的自动完成建议.我真正的问题是如何 - =分离过程的新工作.新对象/委托如何匹配+ =侧的先前创建的对象/委托?

.net c# events

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

从amazon s3下载文件时出错

我想从亚马逊s3下载文件.我正在使用.NET sdk.我写下了以下代码:

GetObjectRequest request = new GetObjectRequest()
    .WithKey("abc/xyz.jpg")
    .WithBucketName(appConfig);

using (GetObjectResponse response = s3Client.GetObject(request))
{
    int numBytesToRead = (int)response.ContentLength;
    if (numBytesToRead > 0)
    {
        int numBytesRead = 0;
        byte[] buffer = new byte32768;
        using (FileStream fstream = new FileStream(@"C:\abc\xyz.jpg", FileMode.Create))
        {
            using (Stream responseStream = response.ResponseStream)
            {
                do
                {
                    numBytesRead = responseStream.Read(buffer, 0, buffer.Length);
                    fstream.Write(buffer, 0, numBytesRead);
                }
                while (numBytesRead > 0);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以下载文件.但现在我想下载多个文件.首先,我列出了s3上可用的所有文件,然后将其存储在arraylist中,然后调用我的每个文件的下载功能.

使用后调用下载函数运行列表文件方法后(GetObjectResponse response = s3Client.GetObject(request))我得到异常.

{"拒绝访问"}

Stack trace:
at Amazon.S3.AmazonS3Client.processRequestError(String actionName, HttpWebRequest request, WebException …
Run Code Online (Sandbox Code Playgroud)

.net c# amazon-s3 amazon-web-services

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

如何从 NPM 包进行日志记录,而不强制使用日志记录库

我正在编写一个公司 npm 包(在打字稿中),并将现有代码移植到其中。在现有代码中,有一些console.log,console.warnconsole.error语句。像这样:

try {
    const foo = getFoo("bar");
    return callback(undefined, foo);
} catch (e) {
    console.error(e);
    return cb(new httpErrors.BadRequest("Some message"));
}
Run Code Online (Sandbox Code Playgroud)

所以正在发生的是:

  • 记录错误
  • 调用带有另一个错误的回调,而不是传入原始错误

这是我们想要的行为,因为我们不想返回原始错误消息,但我们确实希望它在我们的日志中。

现在我要转移到一个包,我想应用一些最佳实践并删除console调用。这是 tslint 规则,我同意包作者不应该填写包用户的日志。

那么这里最好的方法是什么?

我已经阅读了有关该debug软件包的信息,但这仅用于开发目的。另外,这意味着除非我们设置,否则我们不会有我们的日志消息DEBUG=...

我想知道EventEmitter在我的包中使用单例是否是一种选择。但话又说回来,单例被视为一种反模式。

而且我不想添加日志库作为依赖项,因为作为包作者,我不能说要使用哪个日志库。

我想到的最后一个选项是允许传入一个我可以调用的日志函数,但对我来说感觉有点糟糕。

那么允许从(TypeScript/npm)库记录消息的首选技术是什么?

(如果有的话;我对 Node/TypeScript 生态系统相当陌生)。

logging node.js npm typescript

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