Показать сообщение отдельно
  #3 (permalink)  
Старый 17.12.2016, 00:30
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

что же касается непосредственно вопроса:
Сообщение от Malleys
Как асинхронно вызвать resolve() вне Promise?
то это делается вот так, вроде:
promise = new Promise(function(resolve){
   setTimeout(function(){resolve(100)}, 1000)
})

anotherCode = function(){
  setTimeout(function(){
     Promise.resolve(promise).then(function(value){console.log(value)})
  }, 2000)
}

anotherCode()

хотя, по-сути, это, похоже, лишние костыли, можно и так это сделать:
promise = new Promise(function(resolve){
   setTimeout(function(){console.log("first run"); resolve(100)}, 1000)
})

anotherCode = function(){
  setTimeout(function(){
     console.log("second run")
     promise.then(function(value){console.log(value)})
  }, 2000)
}

anotherCode()


То есть, как только Вы сеттите коллбек, условно говоря "onresolve", тут же resolve(точней -- его внутреннее представление) и вызывается(на уровне реализации), если данные готовы.

Последний раз редактировалось fuckingquest, 17.12.2016 в 01:15.
Ответить с цитированием