次のようなことをしたいと思います。
dataservice.doThis(folderIds).then(doThat(setIds));
どこdoThis
でdoThat
何も返さないでください。Deferred と promises を読んでいますが、これを機能させることができませんでした。すべてが完了 doThat
するまで実行しないようにするにはどうすればよいですか?doThis
次のようなことをしたいと思います。
dataservice.doThis(folderIds).then(doThat(setIds));
どこdoThis
でdoThat
何も返さないでください。Deferred と promises を読んでいますが、これを機能させることができませんでした。すべてが完了 doThat
するまで実行しないようにするにはどうすればよいですか?doThis
を使用する場合はthen
、ある種の約束システムが必要になります (それが自分で再実装することを意味する場合でも)。ただし、Promiseを返さないと実行できません (必要なIDを使用して、その Promise も解決する必要があります)。doThis
var dataservice = {
doThis: function doThis(folderIds) {
var future = new PromiseAPlusCompliantPromise();
makeXHR("/some/endpoint", // endpoint
{folderIds: folderIds}, // data to send
function sucess(setIds) { // success handler
future.resolve(setIds);
});
return future; // Note that we do have to return a promise here
}
};
function doThat(setIds) {
// Do whatever here
// No need to return anything
}
dataservice.doThis([1, 2, 3]).then(doThat);