首先回滾是我不關心的事情。javascript中的異步交易
我想能夠鎖定一系列異步函數/承諾/任務(讓我們稱之爲「事務」)與名稱/ ID(或名稱數組),以便它們按順序發生,因此係統其他部分運行的具有相同名稱的任何其他「事務」將從啓動延遲到使用相同名稱的正在運行的事務已完成。所以它基本上是排隊的異步任務,或「交易」的序列。
這裏的情況的一些示例代碼:
function a()
{
// do stuff
return new Promise(/*...*/);
}
function b()
{
// do stuff
return new Promise(/*...*/);
}
function c()
{
// do stuff
return a.then(() => b());
}
隨時
目前,該系統可以調用a
,b
,或c
,當它我不想c
和b
運行在同時,但明顯的c
取決於b
。
我一直在尋找在NPM包,以幫助這一點,但我沒有發現任何東西,我不知道是否有人可以建議的東西,我可能會錯過這將有幫助呢?
我真的不知道問題是什麼。如果你調用'c()。然後(...)',這是不是你想要的?另外,我認爲'c()'的主體應該是'return a()。then(()=> b())',而不是'return a.then(()=> b())' –
爲什麼不使用共享作用域變量作爲標誌來知道是否已經有B或C函數正在執行? – Kulvar
如果有調用函數的條件,聽起來像你需要的是一個委託人。由於b返回一個承諾,我猜你想要的是給b的一個調用等到c不再被處理。然後你會讓調用者在調用b之前等待一個標誌。 – Dacheng