Solidity

Solidity 函式 // for 循環

  • April 12, 2022

我在 for 循環中呼叫 js 中的 set 函式,但它在第二個或第三個循環後停止/崩潰。我想執行它大約 5000 次,而不會失去隊列。是否可以?我該如何實施?我相信該功能應該以某種方式 w8 用於確認前一筆交易以繼續進行下一筆交易。(?)提前致謝!

如果您使用 for 循環或通常使用 web3 api,我顯然不明白這個問題。但是我想您希望循環等待直到事務完成,然後再進行新的迭代。你不應該使用 for 循環,因為它會掛起瀏覽器。Remix ide 給循環帶來了非常糟糕的體驗 而不是在 js 中使用

function loop(i,cond,update,body){
if(cond(i))
{
   body(i)
   //do anything with I 
    setTimeout(arguments.callee,0,update(i),cond,update,body)
}}

其中 i 是要迭代的第一個數字, cond 是條件函式,例如 i=>i<5000, body 是應該在 for 循環體內的函式,例如 i=>console.log(i)

前任:-

for(let i=-4;i&lt;5000;i+=2){console.log(i+5)

我們在這個函式中這樣做

loop(-4,i=&gt;i&lt;5000,i=&gt;i+2,i=&gt;console.log(i+5))

如果在此之後您的瀏覽器掛起,則表示您正在同步執行繁重的工作,請嘗試將其更改為非同步

引用自:https://ethereum.stackexchange.com/questions/126013