私はmap_of_uuid_ids_and_field_names_to_an_array_of_field_values
を構築する必要があります。NodeJSのループからPromiseを返すにはどうすればよいですか?
ループがループした後にこのオブジェクトを返す必要があります。どうやって?
今、私のコードはこのループの内側でハングします。私はそれを見て、内側の "then()"ステートメントからの "return"ステートメントがないことに気付きました。しかし、コードをループする必要があるときに、どうすればそこにreturn文を置くことができますか?この内側のループからプロミスを返すにはどうすればいいですか?
function get_map_of_uuid_ids_and_field_names_to_an_array_of_field_values(string_from_api_call, api_key_whose_name_should_match_the_name_of_a_database_field) {
return new Promise(function(resolve, reject){
var map_of_uuid_ids_and_field_names_to_an_array_of_field_values = {};
sanitized_string_from_api_call = database_queries.sanitize_string(string_from_api_call);
// 2017-07-10 -- this fixes:
// TypeError: Cannot read property 'split' of null, at get_map_of_uuid_ids_and_field_names_to_an_array_of_field_values (/home/ec2-user/daemons/deduplication_api/v9/dupe-res/actions.js:456:82)
if (sanitized_string_from_api_call) {
var array_of_words_from_string_from_api_call = sanitized_string_from_api_call.split(/\s+/);
for (var k in array_of_words_from_string_from_api_call) {
var word = array_of_words_from_string_from_api_call[k];
// 2017-02-27 -- for the sake of performance, we skip over any string of 2 letters or less.
// This means headquarters_country_code and headquarters_state_code need special handling.
if (word.length > 2) {
return database_queries.get_map_of_type_of_profile_and_profile_id_pointing_to_document(word)
.then(function(map_of_type_of_profile_and_profile_id_pointing_to_document) {
if (map_of_type_of_profile_and_profile_id_pointing_to_document) {
map_of_uuid_ids_and_field_names_to_an_array_of_field_values = merge_objects(map_of_uuid_ids_and_field_names_to_an_array_of_field_values, transform_map_of_profile_type_and_profile_id_to_map_of_uuid_to_documents(map_of_type_of_profile_and_profile_id_pointing_to_document));
}
});
}
}
} else {
console.log("the string value was null when api_key_whose_name_should_match_the_name_of_a_database_field was : " + api_key_whose_name_should_match_the_name_of_a_database_field);
}
return map_of_uuid_ids_and_field_names_to_an_array_of_field_values;
});
}
正確に長い名前は何ですか? – Vandesh
もしそれが非同期なら、本当に戻ることはできません。 –
これは面白い質問です:) –