我是網絡開發新手。來自Delphi/pascal。我的長期目標是將遺留應用程序轉換爲Web環境。 (我正在使用這個應用程序:http://smartmobilestudio.com/交叉編譯爲JavaScript,但不應該影響這個問題)。我的傳統程序使用同步遠程過程調用(RPC)到服務器。我正在使用名爲EWD.js(http://robtweed.wordpress.com/2014/01/23/ewd-js-on-fhir/comment-page-1/)的技術,它通過node.js進行異步調用。我在這裏閱讀了許多關於同步和同步調用的帖子。如果我不能以同步的方式使EWD行動,我擔心我只是運氣不好。但我想更好地理解這一點。Javascript轉換異步到同步
考慮這個僞代碼:
RPCcall
//business logic
RPCCall
//business logic
RPCCall
//business logic.
如果有任何的RPC調用失敗,那麼整個應用程序應該失敗。
MyProc()
RPCCall(<name>,MyProc_2);
end;
MyProc2()
//business logic
RPCCall(<name, MyProc_3);
end;
MyProc3()
//business logic
RPCCall(<name, MyProc_3);
end.
:我已經在「延續的風格」,這是我採取的是每個異步調用告訴凡具有的onMessage處理程序在收到返回消息調用回調函數拿起完成後,該補丁讀取編碼
這將是可能的,雖然尷尬/醜陋。但是這樣的情況呢?
RPCcall
//business logic
if conditionA then begin
if conditionA2 then begin
RPCCall
//business logic
end else
RPCCall
//business logic
end else begin
for i=1 to 10 do begin
RPCCall
//business logic
end;
end
end
我現在看不出如何將上述轉換爲延續風格。如果在邏輯樹或循環中間有一個呼叫,我該如何跳回到該狀態?這是如何做到的?完全重新編碼遺留應用程序是不現實的。這是非常非常大和複雜。
任何幫助將不勝感激。 謝謝
我會考慮推遲/許JavaScript的功能,它可以讓你鏈式異步調用。 – tik27
爲了一個簡單的解決方案,你不能讓'RPCcall' ajax同步嗎? – Bergi
@ tik27 - 我會檢查一下。謝謝! – kdtop