私は、各要素をループし、その要素の各属性をループするスクリプトを用意しています。要素の属性名が別のオブジェクト(shims
)のキー名と一致する場合は、JSシムが実行されます。 JSシムが配列に追加されます(エラー)。 結局のところのシム(任意のシムでも実行された場合)私の周り私の頭をラップ厳しい時間を過ごしていコールバックを追跡してデータを単一の配列として送信する
<input data-foobar="true">
と
shims:{
'data-foobar':function(){
//AJAX stuff...
if(there_was_an_error){
errors.push({element:ele,error:'OH NOES!'})
}
}
}
すなわち単一のアレイとして送信されたデータを返しました彼らはすべてミリ秒離れて走っているので、これらのすべてを追跡していますが、明らかに、これらがAJAXのDBへの呼び出しであることを返すのに時間がかかることがあります。
私が考えることができる唯一の方法は、 "shimsRunning++
"のようなカウンターを増やしてから、チェックを受けることです。if(shimsRunning === 0){ callback(this,errors) }
。これは本当にこれを行う最善の方法ですか?応答を待っているコールバックカウンタを維持するためのクルージングと思われる...
ああ、これらはすべてボタンを押して実行されます(送信)。そして、私はこれらのすべてが応答するまで待つ必要があるので、エラーがあるかどうかを知っています。そうであれば、何があってもなくても、フォームが提出されます。
あなたが話すkludgeは、node.jsで一般的に行われています。ほとんどのフォーク結合ループがどのように機能するかを示します。 –
OK、ありがとう。私はちょうど私がこのクリーナーを作るだろうデザインパターンを紛失していないことを確認していた –