gpt4 book ai didi

javascript - 如何使用 request-promise-native 获得自然解决的 promise

转载 作者:行者123 更新时间:2023-12-01 01:13:49 25 4
gpt4 key购买 nike

我在 Node.js 上使用 request-promise-native 模块。我调用的 API 通过 GET 返回所需的数据。效果很好。

但是,当我尝试从函数中获取数据时,因为它前面有 Async 返回一个 promise ,所以我无法获得正确的语法。这是我尝试过的:

const request = require('request-promise-native');

async function usdToEos () {
const options = {
method: 'GET'
,uri: 'https://api.coincap.io/v2/assets/eos'
,json: true
}
const response = await request(options)
.then(response => {
console.log(response)
return (1 / response.data.priceUsd)
})
.catch(error => {
console.log('\nCaught exception: ' + error);
})
}

var usdToEosMul = usdToEos()
console.log('\n' + 'USD multiplier to convert to EOS' + '\n')
console.log(usdToEosMul)

如何使返回值成为...数据...(1/response.data.priceUsd)。这在 ... console.log(response) 中可见...但在变量 usdToEosMul 中不可见。

最佳答案

the function which because it is preceded with async returns a promise

看来您已经差不多回答了您的问题。您必须在调用站点等待该 promise :

usdToEos().then(usdToEosMul => {
console.log('\n' + 'USD multiplier to convert to EOS' + '\n')
console.log(usdToEosMul)
}).catch(error => {
console.log('\nCaught exception: ' + error)
})

function usdToEos() {
const options = {
method: 'GET'
,uri: 'https://api.coincap.io/v2/assets/eos'
,json: true
}
return request(options).then(response => {
console.log(response)
return (1 / response.data.priceUsd)
})
}

;(async function() {
try {
const usdToEosMul = await usdToEos()
console.log('\n' + 'USD multiplier to convert to EOS' + '\n')
console.log(usdToEosMul)
} catch(error) {
console.log('\nCaught exception: ' + error)
}
}())

async function usdToEos() {
const options = {
method: 'GET'
,uri: 'https://api.coincap.io/v2/assets/eos'
,json: true
}
const response = await request(options)
console.log(response)
return (1 / response.data.priceUsd)
}

关于javascript - 如何使用 request-promise-native 获得自然解决的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54941948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com