【发布时间】:2019-05-01 06:09:00
【问题描述】:
我有 Nodejs 代码使用请求库从 url 获取身份验证令牌。
var request = require("request")
const wellish_dev_url = "https://dev.wellish.com"
function get_auth_token(){
const api_end_point = wellish_dev_url + "/api/v1/auth"
var options = {
url: api_end_point,
headers: {"Content-Type": "application/json"},
auth: {
'user': 'admin',
'pass': 'password'}
}
var r = request.get(options, function(error, response, body){
if(!error && response.statusCode==200){
var token = JSON.parse(body)
var auth_token = token["data"][0]["accessToken"]
// console.log(auth_token)
return auth_token
}
else{
console.log("Code : " + response.statusCode)
console.log("error : " + error)
console.log('body : ' + body)
}
})
}
// get_auth_token()
var auth_token_new = get_auth_token()
console.log(auth_token_new)
我想返回 auth_token 以用作另一个函数的参数。但是,它显示未定义。
我在网上查找使用cb,但是,我不知道它是如何工作的。我真的很想在不使用cb 的情况下返回值。有什么帮助吗?
【问题讨论】:
-
cb仅表示callback- 它的工作方式与任何其他回调一样 -
不使用cb可以吗?
-
我建议从你的函数中返回一个 Promise,并在内部回调中解决它,如果有帮助,我可以提供一个示例的答案
-
@jo_va 或者您可以参考建议的副本,因为它几乎涵盖了与 JavaScript 中的异步代码相关的所有可能主题。
标签: javascript node.js