Javascript从嵌套函数返回值
Javascript return value from nested functions
假设我有这个函数:
rest = require('restler');
function authenticate(credentials) {
var accessToken;
rest.post(BaseURL + '/Users/login', { data : credentials })
.on('complete', function(result, response) {
console.log(result.id); // this works fine
accessToken = result.id;
});
return accessToken;
};
我希望它返回包含accessToken
的string
当我运行这个:
var at = authenticate({ "username": "test", "password" : "test" });
console.log('Access Token:', at);
我得到Access Token : underfined
可接受的标准方法是修改authenticate
函数:
function authenticate(credentials, cb) {
rest.post(BaseURL + '/Users/login', { data : credentials })
.on('complete', function(result, response) {
console.log(result.id); // this works fine
if (cb) { cb(result.id); }
}
});
};
然后像这样执行:
authenticate({ "username": "test", "password" : "test" }, function(at) {
console.log(at);
});
异步调用必须通过回调或promise来处理。承诺很"漂亮",但只不过是回电。这就是为什么您可以看到几乎每一个Nodeneneneba API都在利用回调。
您有一个完整功能的}
备用:
rest.post(BaseURL + '/Users/login', {
data: credentials
})
.on('complete', function (result, response) {
console.log(result.id); // this works fine
accessToken = result.id;
}); // `}` spare here
希望得到帮助。
相关文章:
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- Javascript中带有返回值的嵌套函数
- 从Ajax函数返回值
- HTML如何根据javascript函数的返回值限制文本输入
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何从嵌套的API函数返回值
- 如何记录调用另一个函数的函数的返回值
- 即使使用回调函数也无法返回值
- PHP 函数不会向 JavaScript 变量返回值
- 从异步函数返回值
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 从节点中的回调函数返回值
- 从另一个文件访问函数的返回值
- 从JSP页面调用Java Script函数未返回值
- jquery csv函数,如何返回值
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 等待函数完成,然后将返回值分配给变量JS
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 在 html 输入字段中使用返回值函数