与Promise.then()相当的任务是什么?

时间:2016-12-15 19:02:27

标签: c# .net typescript async-await

使用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...);

2 个答案:

答案 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();
        }