json - 如何将已解决的 promise 值传递给另一个函数?

标签 json node.js axios

如何将返回的 Promise 值传递给另一个函数?我需要检索已解析的 JSON 数据,然后使用该响应数据发送到 Slack channel 。

我的index.js

// Get the data
let getData = () => {
    axios.get('https://jsonplaceholder.typicode.com/posts/1').then(res => {
        const responseJSON = res.data
        return responseJSON
    })
    .catch(err => {
        console.log(`Error in getData(): ${err}`)
    })
}

// Post to Slack (real-time)
let slack = () => {
    axios.post('url-to-post-to', {
            'text':  getData().toString() // This has to be a string, but right now it's returning [object Promise]
        })
        .catch(err => {
            console.error(`Error in SLACK: ${err.response.data}`)
        })
}

现在我在 Slack channel 中收到 [object Promise],但我需要以字符串形式返回的 JSON

我认为我正在尝试传递一个尚未解决的值,但问题是,我不知道如何在解决后传递该值。

感谢任何帮助。

最佳答案

在第一次通话后插入您的 Slack 通话thenabled。您需要这样做,因为正如您怀疑的那样,您正在执行 Slack 调用,结果是未履行的 promise 。

// Get the data
let getData = () => {
    axios.get('https://jsonplaceholder.typicode.com/posts/1').then(res => {
        const respondeJSON = res.data;
        return responseJSON;
    }).then(data => {
        axios.post('url-to-post-to', {
            'text': data
        })
        .catch(err => {
            console.error(`Error in SLACK: ${err.response.data}`);
        });
    }).catch(err => {
        console.log(`Error in getData(): ${err}`)
    })
};

关于json - 如何将已解决的 promise 值传递给另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48724057/

相关文章:

node.js - 在 mongo 中,是否有可能有一个看起来有效但永远不可能存在的 _id ?

vue.js - 使用vuex的vue 2 JS中的axios拦截器

javascript - 只有某些跨源请求使用 npm cors() 工作

php - 如何创建反向链接检查器

javascript - 为什么 process.__proto__ !== process.constructor.prototype ?

node.js - node-mongodb-fixtures 不适用于 mongodb 版本 4

javascript - 无法在 ReactJS 上使用 defaultValue 编辑表单

java - 使用 Play Framework 和 Java 解析 Json 数组

java - 将 Java 对象转换为 Java Map<String,Object>

json - 如何使用控制台在 aws SNS 中发送 json 消息正文