不能从异步函数返回值,如
axios.post()
并希望简单地同步接收返回值。换句话说,这是行不通的:
const res = sendHelp(address,accessToken)
有两个原因。第一
sendHelp()
实际上没有归还任何东西。即使它这样做了,也需要返回一个承诺,而不是异步axios函数的结果。您需要回复axios的承诺,然后致电
then()
在上面。例如:
const axios = require('axios')
module.exports = (address, token) => {
// axios.post() returns a promise. Return that promise to the caller
return axios.post('https://api-sandbox.safetrek.io/v1/alarms')
.then(response => {
console.log(response)
return response
})
.catch(error => {
console.log(error)
return error
})
}
现在,您可以将该承诺用于以下内容:
getDeviceAddress(this.event)
.then((address) => sendHelp(address,accessToken))
.then(res => {
console.log(res)
this.emit(':tell', 'Succes!')
})
.catch(err => handleError())