Guest User

Untitled

a guest
Feb 16th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. export class AsyncBindingBehavior {
  2. private bind(binding: any, source: any): void {
  3. binding.originalupdateTarget = binding.updateTarget;
  4. binding.updateTarget = (target: Promise<any>) => {
  5. // When we have a promise
  6. if (typeof target.then === 'function') {
  7. // Set temp value to loading so we know its loading
  8. binding.originalupdateTarget('Loading...');
  9.  
  10. // Process the promise
  11. target
  12. .then((response) => {
  13. // Make sure the binding target is still available
  14. if (binding.originalupdateTarget)
  15. binding.originalupdateTarget(response);
  16. })
  17. .catch((error) => binding.originalupdateTarget('Promise failed'));
  18. } else
  19. binding.originalupdateTarget(target);
  20. };
  21. }
  22.  
  23. private unbind(binding: any) {
  24. binding.updateTarget = binding.originalupdateTarget;
  25. binding.originalupdateTarget = null;
  26. }
  27. }
Add Comment
Please, Sign In to add comment