Мне трудно понять, в чем разница между использованием Promise.resolve() и простым использованием обещания.
Объяснение кажется немного сложным, поэтому у меня есть небольшой пример:
Например, у меня есть метод, который возвращает обещание, подобное этому:
requestPokemon() {
return new Promise((resolve, reject) => {
axios.get("https://pokeapi.co/api/v2/pokemon/1").then(value => {
resolve(value);
})
.catch(error => {
reject(error);
})
});
}
Итак, теперь я могу вызвать этот метод и связать обещание, я полагаю два способа сделать это и не могу получить его, когда Promise.resolve лучше или нет, моя проблема заключается в том, чтобы понять это.
поэтому я решил это двумя способами:
сначала:
Promise.resolve(this.requestPokemon()).then(value => {
this.pokemon = value.data.name;
}).catch(error => {
console.log(error);
})
второй:
this.requestPokemon().then(value => {
this.pokemon = value.data.name;
}).catch(error => {
console.log(error);
})
пожалуйста, мне нужно небольшое объяснение недостатков и преимуществ при выполнении этого одним способом над другим, я очень ценю помощь.
Спасибо
new Promise
, если вы хотите обернуть обратный вызов. И нет, если вы разрешите обещание (сresolve(promise)
илиPromise.resolve(promise)
), оно будет сглажено, поэтому внешнее обещание будет делать то же, что и внутреннее. 05.05.2018