Похоже, вы ожидаете, что Promise.resolve(promise)
немедленно остановится, подождите, пока обещание не будет выполнено, и продолжите после этого.Это было бы близко к синхронному выполнению.
Однако Promise.resolve(value)
возвращает Обещание , которое немедленно разрешается с помощью value
, оно не разрешает существующее Обещание.
То, что вы ищете, это await
(или просто Promise.then
):
var promise = <<<promise maker>>>.then(function (myContent) {
console.log("success");
}, function () {
console.log("fail!");
});
promise.then(function() {
console.log("about to return");
});
Вы можете заметить, что я пропустил promiseData
во фрагменте.Это потому, что для возврата данных в нужный момент, вы также должны быть асинхронными.Таким образом, вы должны фактически вернуть Обещание, которое разрешится с помощью promiseData
, оно сводится к:
<<<promise maker>>>
.then(function(promiseData) {
console.log('success');
return promiseData;
})
.then(function(promiseData) {
console.log('about to return');
return promiseData;
})
.catch(function(err) { console.log('fail!'); })