簡體   English   中英

使用 lambda 延遲工作

[英]Delay job with lambda

我需要向后台發送 2 個動作。 我可以寫:

myobject.delay.action1
myobject.delay.action2

但我不能確定action2action1完成開始,對嗎?

因此,我可以即時創建一個方法。

def action1and2
  myobject.action1
  myobject.action2
end

myobject.delay.action1and2 

但是創建一個命名函數來做這個毫無意義的組​​感覺很愚蠢,不是嗎?

因此,受 JS 的啟發,我想到寫一個 lambda:

-> {
  myobject.action1
  myobject.action2
}

我可以延遲這樣的功能嗎? 或者有沒有替代我的情況?

myobject.delay.instance_eval { action1; action2 }

創建方法action1and2是正確的方法。

action1and2將被“后台進程”調用,它會按照你的預期在單線程中運行。

我可以延遲這樣的功能嗎?

不,你不能。 檢查delay函數,您會發現沒有任何魔法,但它會使用參數序列化您的函數調用,在作業過程中將其反序列化並運行它。 您的內聯函數無法序列化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM