我正在使用Typescript 2.1(开发人员版本)将async/await转换为ES5.
我注意到在我更改了在异步函数中绑定查看的任何属性后,视图不会使用当前值更新,所以每次我必须在函数结束时调用$ scope.$ apply().
示例异步代码:
async testAsync() {
await this.$timeout(2000);
this.text = "Changed";
//$scope.$apply(); <-- would like to omit this
}
Run Code Online (Sandbox Code Playgroud)
此后text,视图中不会显示新值.
是否有任何解决方法,所以我不必每次手动调用$ scope.$ apply()?
我创建了两个模型类:Student和Exam.
学生:
class Student
{
[Key]
public int StudentId { get; set; }
[Required, MaxLength(30)]
public string FirstName { get; set; }
[Required, MaxLength(50)]
public string LastName { get; set; }
[Required]
public DateTime BirthDate { get; set; }
public virtual ICollection<Exam> Exams { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
考试:
public enum Grade
{
A, B, C, D, E, F
}
class Exam
{
[Key]
public int ExamId { get; set; }
[Required]
public Grade Grade { …Run Code Online (Sandbox Code Playgroud) 我刚刚使用ASP.NET Core和SignalR进行了简单的测试(我使用的是这个版本 - 0.1.0-rtm-21431 - https://www.myget.org/feed/aspnetmaster/package/nuget/Microsoft.AspNetCore.SignalR .Server - 猜测它是.NET Core支持的最新版本,但是当我错误地纠正我时)并注意到它正在使用长轮询(我使用Charles嗅探了http请求).
我使用SignalR 2.2.1对ASP.NET 4.6.1进行了相同的测试 - https://www.nuget.org/packages/Microsoft.AspNet.SignalR/并且它使用了WebSockets.
我注意到,通过长轮询我的测试应用程序显然较慢,有时客户端之间存在差异.
知道为什么SignalR for AspNetCore不使用WebSockets而是长轮询吗?是我的配置错误还是SignalR for .NET Core不支持websockets?
我想知道是否有一种方法可以在不使用 EAP(基于事件的异步模式)的情况下报告 WebClient 进度。旧方式(使用 EAP)将是:
var client = new WebClient();
client.DownloadProgressChanged += (s,e) => { //progress reporting }
client.DownloadFileCompleted += (s,e) => { Console.Write("download finished" }
client.DownloadFileAsync(file);
Run Code Online (Sandbox Code Playgroud)
使用 async/await 可以写成:
var client = new WebClient();
client.DownloadProgressChanged += (s,e) => { //progress reporting }
await client.DownloadFileTaskAsync(file);
Console.Write("downlaod finished");
Run Code Online (Sandbox Code Playgroud)
但是在第二个示例中,我同时使用了 EAP 和 TAP(基于任务的异步模式)。混合两种异步模式不是被认为是一种不好的做法吗?
有没有办法在不使用 EAP 的情况下实现相同的目标?我已经阅读了IProgress接口,但我认为没有办法使用它来报告 WebClient 进度。
c# ×3
angularjs ×1
asp.net ×1
asp.net-core ×1
async-await ×1
signalr ×1
typescript ×1
webclient ×1