繁体   English   中英

Promise 未解决

[英]Promise not resolved

我需要这个 axios 调用的结果。 我尝试了很多方法,但我无法解决 promise。 我总是让 promise 等待状态已解决,并且 [[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
});

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
});

您不能通过执行var data = getResult(url); . 数据将有promise object有其状态和价值(如果解决或拒绝)。

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解析为另一个 promise axios.get(URL) ,因为即使在调用resolve之后,您仍处于pending状态。 尝试使用任何其他值(非承诺)解决它,您将获得已解决状态。

我会通过文章向您推荐 go。

如果您这样做,它应该可以工作:

axios.get(URL).then(res=>resolve(res.data))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM