LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

slowProcedure=function(x, y){
  console.log('First run *before* log(foo)');
  return x+y;
}

new Promise(function(resolve, reject){
  try{
    console.log('Not really async')
   resolve(slowProcedure(10, 20))
  }catch(e){
   reject(e)
  }
 })
 .catch(function(e){console.log("first: " + e)})
 .then(function(x){
   return new Promise(function(resolve, reject){
     try{
       resolve(x + slowProcedure(30, 40))
     }catch(e){
       reject(e)
     }
   })
  })
 .catch(function(e){console.log("second: " + e)})
 .then(function(x){console.log(x)})

console.log("foo")

Первый запуск slowProcedure — до console.log(«foo»), что очевидно.

Исходная версия x3al, :

slowProcedure=function(x, y){
  console.log('First run *before* log(foo)');
  return x+y;
}

new Promise(function(resolve, reject){
  try{
    console.log('Not really async')
   resolve(slowProcedure(10, 20))
  }catch(e){
   reject(e)
  }
 })
 .catch(function(e){console.log("first: " + e)})
 .then(function(x){
   return new Promise(function(resolve, reject){
     try{
       resolve(x + slowProcedure(30, 40))
     }catch(e){
       reject(e)
     }
   })
  })
 .catch(function(e){console.log("second: " + e)})
 .then(function(x){console.log(x)})

console.log("foo")

Первый запуск slowProcedure — до console.log, что очевидно.