Skip to content

۴. مبحث پیشرفته: Java.performNow ​

تابع Java.perform به صورت Asynchronous (غیرهمگام) کار می‌کند؛ یعنی فریدا درخواست شما را در صف می‌گذارد و برنامه به خط بعدی می‌رود. اما گاهی (به ندرت) نیاز دارید که کد دقیقا در همان لحظه و به صورت Synchronous (همگام) اجرا شود. برای این کار از Java.performNow استفاده می‌شود.

هشدار پرفورمنس

استفاده از performNow ترد جاری را مسدود (Block) می‌کند تا کار شما تمام شود. استفاده بی‌رویه از آن می‌تواند باعث کندی شدید یا فریز شدن اپلیکیشن شود. فقط زمانی استفاده کنید که دلیل موجهی دارید.

کد فریدا (همگام):

javascript
console.log("Start")

/* این بلاک ترد را نگه می‌دارد تا اجرا تمام شود */
Java.performNow(function () {
    var StringClass = Java.use("java.lang.String")
    console.log("[+] Performing synchronous operation on String class")
})

console.log("End (This prints strictly AFTER the block above)")

خلاصه تفاوت‌ها ​

ویژگیJava.performJava.performNow
نوع اجراAsynchronous (در صف قرار می‌گیرد)Synchronous (در لحظه اجرا می‌شود)
توصیه استفادههمیشه (پیش‌فرض)فقط موارد خاص دیباگ یا Timing
ریسک فریز شدنبسیار کمبالا (اگر کد طولانی باشد)