在promise之后或在promise内部返回值
Return value after promise or since inside promise
我试图在promise结束后获得一个值结果。但是,如果我在函数的末尾放一个返回结果,它总是返回true。在末尾的promise中,值变为false。我是怎么做到的?
下面是我的代码示例:
function validations(){
result = true;
getDistance().then(function(response) {
var distance = (response.rows[0].elements[0].distance.text).split(" ")[0];
if(distance>=100)
result = false;
return result;
}
}
在这种情况下,当我需要一个true/false值时,我的函数是"未定义的"。当我把返回结果放在末尾时,它总是返回true。
function validations(){
result = true;
getDistance().then(function(response) {
var distance = (response.rows[0].elements[0].distance.text).split(" ")[0];
if(distance>=100)
result = false;
}
return result
}
您有两个选项。你可以使用Promise模式:
function validations() {
return getDistance().then(function(response) {
var distance = (response.rows[0].elements[0].distance.text).split(" ")[0];
return distance>=100;
});
}
validations().then(function(trueOrFalse){
// trueOrFalse is true if distance was less than or equal to 100
});
或者回调模式:
function validations(cb) {
getDistance().then(function(response) {
var distance = (response.rows[0].elements[0].distance.text).split(" ")[0];
cb(null, distance>=100);
}, cb);
}
validations(function(error, trueOrFalse){
// trueOrFalse is true if distance was less than or equal to 100
});
在任何一种情况下,需要注意的重要一点是,在设置值之前,您都不会试图执行依赖于该值的代码。
相关文章:
- Javascript返回值只在循环中返回一次
- XMLHttpRequest未返回值-状态202
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- AngularJS错误:提供程序必须从$get工厂方法返回值
- AngularJS-工厂中promise ID字段的返回值
- 如何在循环中调用Promise函数并保存其返回值
- 如何使包含 promise 的函数返回值而不是 promise
- 返回值和 Promise.resolve 从 then() 有什么区别
- Promise对象带有导致错误的警报和返回值
- 在promise之后或在promise内部返回值
- 传递一个promise的返回值作为另一个的参数
- 创建一个没有返回值的AngularJS promise
- 从嵌套的Promise.alls返回值
- 从Promise返回值
- Sequelize:如何访问[object Promise]或从Promise返回值
- Promise构造函数的返回值
- 如果promise没有返回值
- 从Promise返回值到Promise. all
- AngularJS服务内部的promise返回值似乎会改变