別の機能が完了した後に、ある機能を実行しようとしています。
$.when(saveCanvas(canvas)).done(setWallPaper());
各関数はそれ自体で正常に動作しますが、上記のコードを実行すると、最初の関数のみが実行されます。
何を変更する必要がありますか?
別の機能が完了した後に、ある機能を実行しようとしています。
$.when(saveCanvas(canvas)).done(setWallPaper());
各関数はそれ自体で正常に動作しますが、上記のコードを実行すると、最初の関数のみが実行されます。
何を変更する必要がありますか?
別の SO question に関するコメントによると、遅延$.when
オブジェクトが引数として期待されます。何も渡さない場合、コールバックはすぐに呼び出されます。
setWallPaper()
以前に実際に実行されているため、動作していないように見えsaveCancas(canvas)
ますか? saveCanvas()
は実際にはdeferred objectではありませんwhen
。遅延オブジェクトにするには、関数dfr = $.Deferred();
の先頭と末尾に追加します。詳細については、この SO の回答をご覧ください。saveCanvas()
return dfr.promise();
function saveCanvas(canvas)
{
dfr = $.Deferred();
//Your code
return dfr.promise();
}