1
我重构一些承诺代码使用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
}
因为回调将自动反正以后叫。但第二个例子似乎更成问题。