۴. مبحث پیشرفته: 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.perform | Java.performNow |
|---|---|---|
| نوع اجرا | Asynchronous (در صف قرار میگیرد) | Synchronous (در لحظه اجرا میشود) |
| توصیه استفاده | همیشه (پیشفرض) | فقط موارد خاص دیباگ یا Timing |
| ریسک فریز شدن | بسیار کم | بالا (اگر کد طولانی باشد) |