首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从fetch javascript节点获取值-fetch

无法从fetch javascript节点获取值-fetch
EN

Stack Overflow用户
提问于 2020-06-12 18:31:21
回答 2查看 51关注 0票数 2

我正在尝试从下面的脚本中获取价值,但它不能

代码语言:javascript
复制
let doGetVexLastInfo = (url) => {
    fetch(url)
    .then(res => res.json())
    .then(json => {
        let result = 1000 / json.ticker.last;
        return result.toFixed(4);
    });   
}

console.log(doGetVexLastInfo(url))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-12 18:53:11

Fetch是一个异步调用。在这里,您正在尝试将异步调用和同步调用混合在一起。你所要达到的目标的正确用法和定义如下

代码语言:javascript
复制
let doGetVexLastInfo = (url) => {
    return fetch(url)
          .then(res => res.json())
          .then(json => {
              let result = 1000 / json.ticker.last;
              return Promise.resolve(result.toFixed(4));
           }); 
}

doGetVexLastInfo(url)
    .then(result => console.log(result))

现在,doGetVexLastInfo函数返回一个promise,解析该promise时会给出正确的结果。

票数 0
EN

Stack Overflow用户

发布于 2020-06-12 18:36:21

您应该返回fetch(),以便可以使用.then()访问"result.toFixed(4)"

代码语言:javascript
复制
let doGetVexLastInfo = (url) => {
    return fetch(url)
    .then(res => res.json())
    .then(json => {
        let result = 1000 / json.ticker.last;
        return result.toFixed(4);
    });   
}

// with .then()
doGetVexLastInfo(url)
    .then(console.log)
    .catch(console.error)

// with await
(async (){
  const output = await doGetVexLastInfo(url);
  console.log(output)
})();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62342401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档