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
}
因爲回調將自動反正以後叫。但第二個例子似乎更成問題。