【发布时间】:2018-10-15 16:02:37
【问题描述】:
我很难理解使用 Promise.resolve() 和简单使用 Promise 之间的区别。
这个解释似乎有点难以理解,所以我举个小例子:
例如,我有一个方法可以返回这样的承诺:
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);
})
请我稍微解释一下这样做的优缺点,我非常感谢您的帮助。
谢谢
【问题讨论】:
-
当你不知道
this.requestPokemon()是否会返回一个promise,而你仍然想.then()时,你只需要Promise.resolve
标签: javascript promise