【发布时间】:2017-03-31 09:17:43
【问题描述】:
我正在重构一些承诺代码以使用async/await,除了一件事之外它工作得很好。
Promise 让您做的事情是在您想要的任何地方“注入”回调。例如:
public DoSomethingAsync() {
return new Promise<void>(done => {
// do some stuff
done();
});
}
甚至可能回调被另一个回调包裹:
public DoSomethingAsync() {
return new Promise<void>(done => {
const somethingDeferred = GetSomethingDeferred();
somethingDeferred.onsuccess = () => {
// some success code
done();
};
});
}
“拒绝”处理程序也存在类似问题。
有没有办法将这些重构为async/await?还是他们被困在new Promise... 块中?
我认为第一个示例可以一直简化为:
public async DoSomethingAsync() {
// do some stuff
}
因为无论如何都会自动调用回调。但第二个例子似乎问题更大。
【问题讨论】:
标签: typescript callback promise async-await