小编dev*_*per的帖子

Rxjs可观察到等待,直到满足某些条件

我有以下重试逻辑来重试操作.它适用于单个请求.对于多个正在进行的请求,我想在重试之前等待现有的重试逻辑完成.

handleError(errors: Observable<any>) {

    const retryCountStart: number = 1;

    // wait if there is any existing operation retrying
    // once it is complete, continue here

    return errors
        .mergeScan<any, any>(
        (retryCount: any, err: any) => {

            if (retryCount <= 5) {
                return Observable.of(retryCount + 1);
            } 

        },retryCountStart)
        .delay(1000);
}
Run Code Online (Sandbox Code Playgroud)

如何在上述方法中满足某些条件之前添加延迟?

javascript observable rxjs typescript angular

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

SQL Server将列转换为行

我有一个带有当前值和先前值的sql表.

Id  Value1  PValue1 Value2  PValue2
1   A       A       V       V1
2   B       B1      W       W1
3   C       C1      X       X
Run Code Online (Sandbox Code Playgroud)

我想比较它们,如果值有变化,则显示在下表中.

Id  Column  Value   Pvalue
1   Value2  V       V1
2   Value1  B       B1
2   Value2  W       W1
3   Value1  C       C1
Run Code Online (Sandbox Code Playgroud)

是否可以在SQL 2008中不循环每列?

sql t-sql sql-server unpivot sql-server-2008

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

使用ASP.NET Grid显示分层xml数据

我有以下XML数据。我需要以分层表格格式在ASP.NET网页上显示它们。

XML:

<Developers>
  <Region name="UK">
    <Region name="England">
      <Region name="London">
        <Data Date="01-01-2019">
          <Value name="DotNet">100</Value>
        </Data>
        <Data Date="01-01-2020">
          <Value name="DotNet">200</Value>
          <Value name="Java">300</Value>
        </Data>
      </Region>
      <Region name="Other">
        <Data Date="01-01-2019">
          <Value name="DotNet">400</Value>
        </Data>
        <Data Date="01-06-2019">
          <Value name="DotNet">500</Value>
        </Data>
      </Region>
    </Region>
    <Region name="Scotland">
      <Data Date="01-01-2019">
        <Value name="DotNet">600</Value>
      </Data>
    </Region>
  </Region>
  <Region name="France">
    <Data Date="01-06-2020">
      <Value name="DotNet">700</Value>
    </Data>
  </Region>
  <Region name="Germany">
    <Data Date="01-06-2019">
      <Value name="Java">800</Value>
    </Data>
  </Region>
</Developers>
Run Code Online (Sandbox Code Playgroud)

预期产量:

在此处输入图片说明

其中(-)是树视图的展开/折叠控件。

是否可以使用ASP.NET数据网格实现此目的?任何代码示例都将非常有用。

c# xml asp.net datagrid gridview

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

HttpClientHandler不包含DefaultProxyCredentials的定义

我正在使用以下代码从使用.Net Core 2.0的API获取数据。

        using (var handler = new HttpClientHandler() { DefaultProxyCredentials = CredentialCache.DefaultCredentials })
        {
            handler.PreAuthenticate = true;
            using (var client = new HttpClient(handler))
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
                var response = await client.GetAsync(url);
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是,我需要将项目转换为.Net Framework 4.6.1,并且.Net Framework 4.6.1中没有DefaultProxyCredentials属性。

https://docs.microsoft.com/zh-cn/dotnet/api/system.net.http.httpclienthandler.defaultproxycredentials

.NET Framework 4.6.1(不使用配置文件)中的DefaultProxyCredentials等效项是什么?

更新:我尝试将代码更改为以下内容:

using (var handler = new HttpClientHandler() { Proxy = WebRequest.DefaultWebProxy})
{
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,但会随机引发407-“需要代理身份验证”错误。

.net c# dotnet-httpclient .net-core

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

团队城市代码覆盖率和单元测试结果未显示在声纳上

我正在尝试将单元测试和 dotCover 代码分析结果从 TeamCity 上传到声纳服务器。它在 TeamCity 中显示代码覆盖率和单元测试结果,但没有在 Sonar 上显示代码覆盖率/单元测试。

在此处输入图片说明

TeamCity 单元测试步骤:

在此处输入图片说明

其次是Powershell脚本:

在此处输入图片说明

我在 Sonar Runner 步骤中有以下附加参数:

Dsonar.cs.vstest.reportsPaths=TestResults.trc Dsonar.cs.dotcover.reportsPaths='%sonar.coverageReport%'

有谁知道如何解决这一问题?

谢谢。

teamcity mstest dotcover sonarqube

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

等待观察完成

我有一系列方法,这些方法取决于其他方法的完成。

process1(data: string) : Observable<string> {
   this.dataservice.process(data).subscribe(
            (response) => {
                return response.data;
            }
        );
}

main(data: string) : string {

   var process1Data: string = process1(data); 

   // I would like to wait for process1 method to complete before running process2
   // I do not want to include process2 inside subscribe of process1 because I have to make few more method calls
   var process2Data: string = process2(process1Data);

   var process3Data: string = process3(process2Data);

   ...

}
Run Code Online (Sandbox Code Playgroud)

如何在调用下一个方法(process2,process3)之前等待可观察对象完成?(类似于在C#中等待)

javascript observable rxjs typescript angular

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

可观察的重试/重试当使用flatmap时

我有以下代码来获取id,然后获取与id相关的数据.

process(): Observable<any> {
    let id: number;
    return this.getId().flatMap(
        (response: number) => {
                id = response;
                return this.getData(id)
        }
    ).flatMap(
        (data: any) => {
            return Observable.of(data);
        }
    );
}

getData(id: number): Observable<any> {
    // retry if response.status is not complete
    return this.service.getData(id).map(response => return response.data); 
}
Run Code Online (Sandbox Code Playgroud)

我想在getData方法上添加重试逻辑,直到response.status没有完成.我尝试在this.getData(id)之后添加重试/重试但没有运气.有什么建议吗?

javascript observable rxjs angular

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

在 Angular 单元测试代码覆盖率报告中包含 HTML 文件

我正在使用 Angular 6 和 karma 覆盖伊斯坦布尔记者来查看代码覆盖率。

它在代码覆盖率报告中仅显示 .ts 文件,这可能会产生误导,因为 HTML 模板也可以包含代码逻辑。

是否有将 HTML 代码包含到单元测试代码覆盖率中的方法?

jasmine istanbul karma-coverage angular

5
推荐指数
0
解决办法
248
查看次数

SSDT 不考虑触发器启用/禁用属性

我已经从现有数据库创建了一个 SSDT 项目。它在 tablename.sql 文件中包含现有触发器。

CREATE TABLE [dbo].[TableName] (
    [ID]        INT           NULL
)

GO

CREATE TRIGGER trgTableName ON dbo.TableName
FOR INSERT 
AS
BEGIN
 ....
END

GO

DISABLE TRIGGER [dbo].[trgTableName] ON [dbo].[TableName]; /* My trigger is currently disabled */
GO
Run Code Online (Sandbox Code Playgroud)

但是,每当我修改触发器时,SSDT 都会再次启用它。它在部署时不考虑触发器禁用属性。

无论如何我可以让SSDT禁用触发器(如果它已经在数据库中被禁用)?

我正在考虑的方法之一是添加为部署后脚本。但是,最好为此使用现有的 SSDT 功能,而不是手动添加部署后脚本。

编辑:如果我们更新它们,SQL 服务器似乎会自动启用触发器。就我而言,触发器有更新,因此它启用了触发器。但是,SSDT 不会在更新后禁用它。

sql-server sql-server-data-tools

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

使用spread运算符更新包含对象的数组

我有一个包含javascript/typescript中对象的数组.

let array = [{id:1,name:'One'}, {id:2, name:'Two'}, {id:3, name: 'Three'}]
Run Code Online (Sandbox Code Playgroud)

如何更新第二个元素的名称(ID为2)并使用javascript spread(...)运算符将数组复制到新数组?

javascript typescript redux

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