我正在嘗試使用某種“異步安全”的單例/信號量機制。
node
我的目標是在我的 node.js 應用程式的整個生命周期中只創建一個 IPFS 實體。
目前我正在做的是以下這在某些情況下是絕對不安全的。
const IPFS = import('ipfs-core');
const getIPFSNode = async () => {
if (module.exports.ipfsNode === undefined) {
ipfs = await IPFS;
const node = await ipfs.create();
module.exports.ipfsNode = node;
}
return module.exports.ipfsNode;
};
我如何確保只創建一個 IFPS 節點實體?有沒有辦法創建原子操作或用信號量/互斥體保護它?
uj5u.com熱心網友回復:
像這樣的東西會起作用,盡管它有一種意想不到的副作用,即每次呼叫都讓步,即使在承諾完成后也是如此。
const IPFS = import('ipfs-core');
let promise;
const getIPFSNode = () => {
if (promise === undefined) {
promise = IPFS.create();
}
return promise;
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498353.html
上一篇:如何從F#中的異步行程更新計數器