承诺未解决

时间:2019-11-20 14:18:35

标签: 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(function(result) {
  return result.data
});

2 个答案:

答案 0 :(得分:0)

axios.get-返回Promise的方法。

任何一个

axios.get(URL).then(result => result.data);

function getResult(url) {
  return axios.get(url);
};

let theResult = getResult('<URL goes here>').then(function(result) {
  return result.data
});

答案 1 :(得分:0)

您无法通过执行var data = getResult(url);来从承诺中获得回报。 数据将具有承诺对象,该对象具有其状态和值(如果已解决或拒绝)。

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解决为另一个承诺axios.get(URL),因为即使您致电pending,也会得到resolve作为状态。尝试使用其他任何值(非承诺)来解决它,您将获得已解决状态。

我建议您通过article.