我需要在AngularJS 1.0.7中使用参数运行函数 “ searchBoats(boatType)” 。此参数是另一个函数
parseBoatType 的结果,该函数 正在运行使用$ resource调用API的服务
。当带有诺言的资源中返回boatType时,如何运行searchBoats?
这是我尝试的:
var parseURL = function() {
var deferred = $q.defer();
var promise = deferred.promise;
promise.then(function success (result) {
console.log(result);
searchBoats(result);
});
deferred.resolve(
parseBoatType()
);
};
parseURL();
var parseBoatType = function() {
// Do some stuff
// Calculate boatType calling a service that uses resource to call
// an API
// I can convert this callback into a promise but still facing same
// issue
BoatType.getBoatTypeByName({name: boatTypeParsed}, function success(result) {
return result;
});
// The service method is called and the code is still running until
// the end of the function without waiting for the service result.
// Then the promise.then code in the parseURL is executed and
// searchBoats is run with boatType undefined.
};
// The service with the $resource call to the API
.factory('BoatType',
function($resource, SERVER_URL){
var boatTypes =
$resource('http://' + SERVER_URL +'/:action', {action:'boat_types'}, {
query: {method:'GET', isArray: true},
getBoatTypeByName: {method:'GET', params:{action: 'getBoatTypeByName'}, isArray: false}
});
return boatTypes;
}
)
您可以$promise
从函数中的BoatType
资源返回资源,parseBoatTime
并使用Promise来解决parseUrl
延迟的问题。
首先从parseBoatTime
函数返回一个promise :
return BoatType.getBoatTypeByName({
name: boatTypeParsed
}, function success(result) {
return result;
}).$promise;
然后parseUrl
deferred
用BoatType
资源中的承诺解决:
parseBoatType().then(deferred.resolve);
贝娄是从您的问题中得到的完整代码,我提到了更正。
var parseURL = function() {
var deferred = $q.defer();
var promise = deferred.promise;
promise.then(function success(result) {
console.log(result);
searchBoats(result);
});
parseBoatType().then(deferred.resolve);
};
parseURL();
var parseBoatType = function() {
// Do some stuff
// Calculate boatType calling a service that uses resource to call
// an API
// I can convert this callback into a promise but still facing same
// issue
// Code for ngResource@^1.2.0
/*return BoatType.getBoatTypeByName({
name: boatTypeParsed
}, function success(result) {
return result;
}).$promise;*/
// Code for ngResource lower than 1.2.0
var deferred = $q.defer(), promise = deferred.promise;
BoatType.getBoatTypeByName({
name: boatTypeParsed
}, deferred.resolve, deferred.reject);
return promise;
// The service method is called and the code is still running until
// the end of the function without waiting for the service result.
// Then the promise.then code in the parseURL is executed and
// searchBoats is run with boatType undefined.
};
// The service with the $resource call to the API
app.factory('BoatType',
function($resource, SERVER_URL) {
var boatTypes =
$resource('http://' + SERVER_URL + '/:action', {
action: 'boat_types'
}, {
query: {
method: 'GET',
isArray: true
},
getBoatTypeByName: {
method: 'GET',
params: {
action: 'getBoatTypeByName'
},
isArray: false
}
});
return boatTypes;
}
)
问题内容: 我是诺言和使用NodeJS中的请求和诺言编写网络代码的新手。 我想删除这些嵌套的Promise,而是将它们链接起来,但是我不确定我将如何处理它/这是否是正确的方法。 这是请求代码: 任何见识将不胜感激。 问题答案: 在每个回调中,您都需要 返回 新的Promise: 调用返回的承诺然后将使用“内部”承诺中的值进行解析,以便您可以轻松地链接它们。 通用模式:
我试图在脚本分数中使用嵌套值,但我在使它工作时遇到了问题,因为我无法通过doc访问它来迭代字段。此外,当我尝试在Kibana中像< code > _ type:images AND _ exists _:colors 一样查询它时,它不会匹配任何文档,即使当我单独查看所有文档时,该字段都清楚地出现在它们中。不过,我可以使用参数来访问它。_source,但是我看过可以慢一点慢一点,真的不推荐。 我知
问题内容: 我是诺言和使用NodeJS中的请求和诺言编写网络代码的新手。 我想删除这些嵌套的Promise,而是将它们链接起来,但是我不确定我将如何处理它/这是否是正确的方法。 这是请求代码: 任何见识将不胜感激。 问题答案: 在每个回调中,您都需要 返回 新的Promise: 调用返回的承诺然后将使用“内部”承诺中的值进行解析,以便您可以轻松地链接它们。 通用模式:
我有一个spring boot应用程序,我想在其中外部化消息。我将这些消息分为错误、信息和成功。因此,我创建了如下所示的嵌套文件夹结构: 并且,我正试图通过以下方式从服务中访问它: 这给了我以下例外情况: missingResourceException:找不到bundle的基本名称错误,区域设置为 但是,如果我将属性文件保存在下面的文件夹之外,它可以正常工作: null
我想在SpringBoot中使用quartz运行一个作业,其中多个线程将执行该方法。我想要的是将每次处理的结果都保存在redis中,这样我就可以知道这个工作有多好。 我想以这种形式保存redis中的数据。 我想插入关键日期中的所有项目。因为有多个线程在工作,所以每个线程都在处理某个项目。所以所有项目都应该只插入到键(日期)中。 可能吗? 一种解决方案是一次又一次地重写(date)键的数据,首先从r
我被困在将嵌套JS与宇宙数据库核心SQL API集成上。我知道有一个用于 Cosmos DB 的模块(https://github.com/nestjs/azure-database),但我需要数据架构来支持嵌套的 json,如下所示: 我认为@nestjs/azure-database不支持这一点(或者我可能错了),因为当我检查他们的示例和quickstart时,没有这样的json模式的示例。