Javascript 承诺未解决
我需要这个axios调用的结果。我尝试了很多方法,但我无法实现承诺。我一直在等待状态解决的承诺,[[PromiseValues]]这是我最后一次尝试:Javascript 承诺未解决,javascript,promise,axios,es6-promise,Javascript,Promise,Axios,Es6 Promise,我需要这个axios调用的结果。我尝试了很多方法,但我无法实现承诺。我一直在等待状态解决的承诺,[[PromiseValues]]这是我最后一次尝试: function getResult() { let promise = new Promise(function(resolve, reject) { resolve(axios.get(URL)) }); return promise; }; let theResult = getResult().then(funct
function getResult() {
let promise = new Promise(function(resolve, reject) {
resolve(axios.get(URL))
});
return promise;
};
let theResult = getResult().then(function(result) {
return result.data
});
axios.get
-返回承诺的方法
或者
axios.get(URL).then(result=>result.data)代码>
或
函数getResult(url){
返回axios.get(url);
};
让theResult=getResult(“”)。然后(函数(结果){
返回result.data
});
您不能通过执行var data=getResult(url)来期望promise返回值代码>数据将具有承诺对象,该对象具有其状态和值(如果已解决或被拒绝)。
function getResult() {
let promise = new Promise(function (resolve, reject) {
resolve(axios.get("https://api.github.com/users/mralexgray/repos"))
});
return promise;
};
getResult().then((result) => {
let theResult = result.data;
/** process result **/
}).catch((err) => {
console.log(err, "error");
})
您正在将您的promise
解析为另一个promiseaxios.get(URL)
,因此即使在调用resolve
后,您也会将挂起
作为一种状态。尝试使用任何其他值(非承诺)解决此问题,您将获得已解决状态
我建议您使用axios。get(URL)
-已经是一个承诺了。Doaxios.get(URL).然后(result=>result.data)代码>它返回Promise{}proto:Promise[[PromiseStatus]]:“resolved”[[PromiseValue]]:数组(9)我不知道如何访问values@LadyCrispy这是因为您正在尝试console.log
在它完成之前将其记录下来。我如何使用该结果?因为当我尝试使用它时,它会说它是未定义的。这开始看起来像是一个dup。我认为问题是OP不知何故期望结果成为他们的价值,但它仍然是一个承诺(应该是这样的)。
function getResult() {
let promise = new Promise(function (resolve, reject) {
resolve(axios.get("https://api.github.com/users/mralexgray/repos"))
});
return promise;
};
getResult().then((result) => {
let theResult = result.data;
/** process result **/
}).catch((err) => {
console.log(err, "error");
})