1
我想知道什麼是鏈接延遲最好的設計。請考慮下面的代碼片段:等待鏈接推遲完成
組件X:
_functionRaisingEvent: function()
{
$.when(this.raiseEvent('myEvent', args)).done(function(args){ // Check for args.cancel });
},
_raiseEvent: function(event, args)
{
var def = new $.Deferred();
// Call subscribers of myEvent in different components and pass them args
// Subscribers possibly make ajax calls
return def.promise();
},
認購Y:
_onMyEvent:function(args)
{
$.ajax(....).done(function(data){ if(data == 1) args.cancel = true;});
},
用戶Z:
_onMyEvent:function(args)
{
document.getElementById('abx').display = 'block';
}
_functionRaisingEvent調用_raiseEvent這觸發了用戶的回調。
我想實現的是,在_functionRaisingEvent中完成的回調只在所有訂戶完成後才執行。
我應該通過訂戶自己的延期爲參數和使用管道?任何最佳實踐或設計模式?