小编Ben*_*ron的帖子

在web api控制器中使用async/await或task(.net core)

我有一个.net核心API,它有一个控制器,用于构建要返回的聚合对象.它创建的对象由来自对服务类的3个方法调用的数据组成.它们彼此独立,可以彼此隔离运行.目前我正在使用任务来提高此控制器的性能.当前版本看起来像这样......

[HttpGet]
public IActionResult myControllerAction()
{      
    var data1 = new sometype1();
    var data2 = new sometype2();
    var data3 = new List<sometype3>();

    var t1 = new Task(() => { data1 = service.getdata1(); });
    t1.Start();

    var t2 = new Task(() => { data2 = service.getdata2(); });
    t2.Start();

    var t3 = new Task(() => { data3 = service.getdata2(); });
    t3.Start();

    Task.WaitAll(t1, t2, t3);

    var data = new returnObject
    {
         d1 = data1,
         d2 = data2,
         d2 = data3
    };

    return Ok(data);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但我想知道在这里使用任务是否是最佳解决方案?使用async/await是一个更好的主意和更容易接受的方式吗? …

.net c# asp.net-web-api asp.net-core

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

33
推荐指数
3
解决办法
9万
查看次数

lodash orderby,null和实际值没有正确排序

我有一个Angular 2打字稿应用程序,它使用lodash进行各种操作.

我有一个对象数组,我使用对象中的属性进行排序...

_.orderBy(this.myArray, ['propertyName'], ['desc']);
Run Code Online (Sandbox Code Playgroud)

这很有效,但我的问题是有时'propertyName'可以有一个空值.这些作为降序列表中的第一项排序,然后是最高实际值.

我想让这些空值以降序排列显示在最后.

我理解为什么空值首先出现.

有谁知道如何处理这个?

javascript typescript lodash

11
推荐指数
3
解决办法
8871
查看次数

Angular2 - 在Azure中托管时页面刷新404

我正在开发一个Angular2应用程序.它使用"@ angular/common":"2.0.0-rc.4"和"@ angular/router":"3.0.0-beta.2".

我的问题是,当我在某些页面上使用浏览器刷新时,我看到一个错误说...

" 您要查找的资源已被删除,名称已更改,或暂时无法使用."

如果我直接点击网址也会发生这种情况.

一个示例网址是... https://tilecasev2.azurewebsites.net/profile/therichmond

但是,如果您通过主页查看页面,它们可以正常工作,但只能刷新(https://tilecasev2.azurewebsites.net).

我的index.html头文中有以下内容...

<base href="/"> 
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

azure angular2-routing angular

10
推荐指数
1
解决办法
3431
查看次数

Angular 2可观察错误 - '参数'观察者'隐含地具有'任意'类型.

我正在学习Angular 2,并且遇到了将要返回一个可观察的服务的问题.

我看到这个错误,但不知道为什么?我正在尝试按照我在网上找到的一些教程...

[ts]参数'observer'隐式具有'any'类型.

我的编辑突出了lambda开头的"观察者"工作.

我正在使用Angular"2.0.0-rc.2"

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class LocationService {

    constructor() { }

    getLocation(): Observable<string> {

        let data: Observable<string>;

        data = new Observable<string>(observer  => {
            observer.next("123")
        });

        return data;
    }
}
Run Code Online (Sandbox Code Playgroud)

angular

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

如何在按钮列表上设置活动类

我有一个Angular 2应用程序,其中包含一个包含过滤器按钮列表的组件.其中一个可以在任何时间激活.按钮定义来自某些json,有一天会从服务器发送.

我的问题是如何在当前单击的按钮上设置样式.我应该在click事件处理程序中设置它吗?那我怎么知道点击了哪个按钮?

我的组件看起来像这样:

import { Component, EventEmitter, Output }  from '@angular/core';

@Component({
    selector: 'tileFilter',
    template: require('./tileFilter.component.html'),
    styles: [require('.//tileFilter.component.scss').toString()]
})

export class TileFilterComponent {

@Output() onCategorySelected = new EventEmitter<number>();

public activeClass: string = "nonactive"

 private categories: any[] = [
    { "Id": 0, "Name": "All" },
    { "Id": 3, "Name": "Popup" },
    { "Id": 4, "Name": "Cafe" },
    { "Id": 5, "Name": "Pub or bar" },
    { "Id": 9, "Name": "Restaurant" }
]; …
Run Code Online (Sandbox Code Playgroud)

angular

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

Javascript POST上的NS_Error_Failure

我遇到一些javascript问题.下面的代码片段创建了一个简单的帖子请求,但它总是抛出NS_Error_failure异常(详细信息在页面底部).谁能告诉我这段代码有什么问题?

window.onload = function () {

    alert('0');
    try {
        var url = "Some URL";
        var request = CreateHttpRequest();
        if (request) {
            alert('1');
            request.open("POST", url, false);
            request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            alert('2');
            request.send('');
            alert('3');
        }
    }
    catch (err) {
        alert(err);
    }
}
Run Code Online (Sandbox Code Playgroud)

    [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)"
     nsresult: "0x80004005 (NS_ERROR_FAILURE)"  
     location: "JS frame :: file:///C:/Users/Ben/Desktop/test.html :: <TOP_LEVEL> :: line 44"  data: no]
Run Code Online (Sandbox Code Playgroud)

javascript

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

MSBuild - 等待x秒

我有一个部署Web应用程序的MSBuild脚本.它通过将"app_offline.htm"文件复制到服务器来停止当前的Web应用程序.在此之后,它删除其他文件,然后将新文件复制到服务器.

我需要在复制'app_offline.htm'和删除之间添加延迟.

当脚本尝试删除文件时,我的当前脚本会抛出错误,因为文件仍然处于锁定状态.

在MSBuild中执行此操作的最佳方法是什么?

我的停止任务看起来像这样......

  <Target Name="Stop">
    <WriteLinesToFile File="$(DeployDirectory)\app_offline.htm" Lines="Offline for maintenance" Overwrite="true" Encoding="Unicode"/>
  </Target>
Run Code Online (Sandbox Code Playgroud)

我的删除任务看起来像这样......

  <Target Name="Clean">
    <ItemGroup>
      <Files Include="$(DeployDirectory)\**\*" Exclude="$(DeployDirectory)\app_offline.htm" />
      <Files Include="$(LogDirectory)\*" />
    </ItemGroup>
    <Delete Files="@(Files)" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

msbuild

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

Angular 2 - 从Web Api渲染byte []作为图像src

我有一个Angular 2应用程序连接到Web Api后端.有一个端点返回存储在sql数据库中的图像的byte [].如何在Angular中将其显示为图像?我可以更改Web Api或Angular应用程序.

我的Web Api端点看起来像这样......

[Route("api/profileimage/{userId}")]
public byte[] Get(string userId)
{
    var image = _profileImageService.GetProfileImage(userId);

    return image;
}
Run Code Online (Sandbox Code Playgroud)

我的Angular HTML看起来像这样......

<img src="http://localhost:2116/api/ProfileImage/{{tile.UserId}}" width="100" height="100"/>
Run Code Online (Sandbox Code Playgroud)

我需要做什么转换,或api应该提供什么?

c# angular

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

Angular2和RXJS,在收到一次数据后取消订阅

我有一个订阅调用,只需要一次接收数据.它开启的Angular 2页面长期运行.

我想确保订阅第一次收到数据后不会导致内存泄漏和取消订阅的任何问题.

这是我的服务,它提出了一个api查询.它使用.first,因此一旦收到数据就应该清理它.

getData(): Observable<string> {
    let _url = SOME_API_URL;
    return this._http.get(_url).first().map((response: Response) => { return response.json(); });
}
Run Code Online (Sandbox Code Playgroud)

这是我的Ng2订阅.我是否需要做任何事情确保在收到第一()数据后清理所有内容?

this._service.getData().subscribe((data: any) => {
    // Do something once.
    // DO I HAVE TO UNSUBSCRIBE OR WILL THE CLEANUP HAPPEN DUE TO THE ABOVE FIRST() CALL?
});
Run Code Online (Sandbox Code Playgroud)

我可以使用ngDestory,但由于页面长时间运行而且不经常刷新,因此不会被调用.

rxjs angular

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