Volt は、JS ランドの A+ 仕様に基づいていると思われる Opal の promise 実装を使用します。表示されるエラーは、promise に .then または .fail ブロックを 1 つしか含めることができないためです。それぞれの .then または .fail は、チェーンオフできる新しい promise を返します。
だからあなたはこれを行うことができます:
promise = Promise.new
promise2 = promise.then do
..
end
promise2.then do
..
end
(最初のものを再び連鎖させるのではなく、promise2 を割り当てていることに注意してください)
しかし、次のようなことはできません。
promise = Promise.new
promise.then do
...
end
promise.then do
..
end
(私がどのように .then を呼び出したかに注意してください)
最初のものを書くよりコンパクトな方法は、最後のものを連鎖させることです
promise = Promise.new
promise.then do
..
end.then do
..
end.fail do
..
end
Volt バインディングは、チェーンされていない promise を想定しています。また、これが意味することのすべてを考えていないので、間違っている可能性がありますが、複数回チェーンできる場所で機能させることができると思います. 時間があれば、これを処理できる新しい promise の実装を書くかもしれません。それでもエラーが表示され、上記の説明でエラーの理由が説明されない場合は、お知らせください。ありがとう!