что же касается непосредственно вопроса:
Сообщение от 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(точней -- его внутреннее представление) и вызывается(на уровне реализации), если данные готовы.