SHARE
TWEET

Untitled

a guest Sep 13th, 2017 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         function getRandomValue(max) {
  2.             if (max === undefined) max = 1000;
  3.             return Math.round(Math.random() * 1000);
  4.         }
  5.  
  6.         function getUserId(user) {
  7.             return new Promise(function(resolve, reject) {
  8.                 setTimeout(function() {
  9.                     user.id = getRandomValue();
  10.  
  11.                     resolve(user);
  12.                 }, getRandomValue(1000));
  13.             });
  14.         }
  15.  
  16.         function getUserMailCount(user) {
  17.             return new Promise(function(resolve, reject) {
  18.                 var id = user.id;
  19.  
  20.                 if (id === undefined) {
  21.                     reject('нет данных');
  22.                 }
  23.  
  24.                 setTimeout(function() {
  25.                     user.mailCount = getRandomValue(id);
  26.  
  27.                     resolve(user);
  28.                 }, getRandomValue(1000));
  29.             });
  30.         }
  31.  
  32.         function getUserAccess(user) {
  33.             return new Promise(function(resolve, reject) {
  34.                 var id = user.id;
  35.  
  36.                 if (id === undefined) {
  37.                     reject('нет данных');
  38.                 }
  39.  
  40.                 setTimeout(function() {
  41.                     user.access = getRandomValue(id) % 2 === 0;
  42.  
  43.                     resolve(user);
  44.                    
  45.                 }, getRandomValue(1000));
  46.             });
  47.         }
  48.  
  49.         getUserId({})
  50.             .then(function(user) {
  51.                 return getUserMailCount(user);
  52.             })
  53.             .then(function(user) {
  54.                 return getUserAccess(user);
  55.             })
  56.             .then(function(user) {
  57.                 console.log('последовательно');
  58.                 console.log(user);
  59.             });
  60.  
  61.             getUserId({})
  62.             .then(function(user) {
  63.                 return Promise.all([getUserMailCount(user), getUserAccess(user)]);
  64.             })
  65.             .then(function(users) {
  66.                 console.log('параллельно');
  67.                 console.log(users[0]);
  68.             });
RAW Paste Data
Top