使用Promise(s)向TypeScript添加async / await可以在语法上非常接近Task(s)。
示例:
承诺(TS)
public aync myAsyncFun(): Promise<T> {
let value: T = await ...
return value;
}
任务(C#)
public aync Task<T> MyAsyncFun() {
T value = await ...
return value;
}
我想知道是否相反,有一个等同于.then()的任务。
示例:
承诺(TS)
Promise<T> promise = ...
promise.then((result: T) => ...do something...);
答案 0 :(得分:8)
我已经使用了ContinueWith
,如果你有一个或多个任务正在运行,它可以正常工作。
示例:
public async Task<T> MyAsyncFun() {
T value = await ...
return value;
}
MyAsyncFun().ContinueWith(...
https://msdn.microsoft.com/en-us/library/dd270696(v=vs.110).aspx
答案 1 :(得分:-2)
您可以使用异步任务的“等待”方法。
public void Remove(int[] ids)
{
var entities = EntitySet.Where(x => x.IsActive && ids.Contains(x.Id));
var task = entities.ForEachAsync(x =>
{
x.IsActive = false;
Context.Entry(x).State = EntityState.Modified;
});
task.Wait();
Context.SaveChanges();
}