我正在做一个HTTP帖子,它会返回单个10-15个字符的字符串。我想将此值赋给临时变量并在构建另一个包含所述10-15位字符串的较大字符串时使用它。
我通过将temp变量(" ticket")设为全局来实现这一点,我不喜欢这样:
var ticket; // Global. Lame.
...stuff happens
getTicket("someUser", function(err) {
if(err)
{console.log("problem");}
else
{console.log(ticket);}
});
...other stuff happens
// Helper functions down here....
var getTicket = function (userName, callback) {
var user = userName;
request.post(
{
url: 'http://somewhere',
form: { 'username': user }
},
function(err, response, body) {
if(err) {
callback(err);
return;
} else {
ticket = body;
}
callback(null);
});
}
有人能指出我正确的模式来返回POST回调中的变量ticket
(或body
变量,无论如何)ala:
_ticket = getTicket("someuser")
非常感谢。
答案 0 :(得分:0)
您将ticket
作为参数传递给回调:
getTicket("someUser", function(err, ticket) {
if(err)
{console.log("problem");}
else
{console.log(ticket);}
});
function getTicket (userName, callback) {
var user = userName;
request.post(
{
url: 'http://somewhere',
form: { 'username': user }
},
function(err, response, body) {
if(err) {
callback(err);
return;
}
callback(null, body); // body contains the ticket
});
}
request.post
是异步的,所以没有一种模式可以让你得到类似的东西:
_ticket = getTicket("someuser")