【发布时间】:2018-07-22 01:26:52
【问题描述】:
我正在尝试使用 nodeJS 创建一个 Web 应用程序,但由于 nodeJS 的异步特性,我被卡住了。
我有三个不同的环境,根据来自 html 表单的用户输入,我应该检查用户是否存在于所选环境中。
html 将有 3 个复选框,用户可以选择任意数量的环境。
if(Dev_Environmnet){
getUserDatafromEnvironment(user,environment, function(callback1)){
if(callback1.error){
// User Does Not Exist Or credentials are wrong
}
else{
//get User API
}
});
}
if(PVS_Environmnet){
getUserDatafromEnvironment(user,environment, function(callback1)){
if(callback1.error){
// User Does Not Exist Or credentials are wrong
}
else{
//get User API
}
});
}
if(Prod_Environmnet){
getUserDatafromEnvironment(user,environment, function(callback1)){
if(callback1.error){
// User Does Not Exist Or credentials are wrong
}
else{
//get User API
}
});
}
一旦完成,我需要回调的结果将其打印到另一个 HTML 页面。这是我需要在下一页显示的内容
DEV - API key gdeuysgdsgddiudgqwywdgAguiegdhsiw
pVS - user does not exist or credentials are wrong
Prod - APYI Key ugehdfiyugfugew%$%$udisfiuhygyig
我无法一次获得所有这些值。有人可以帮我吗?
【问题讨论】:
-
将您的调用转换为
getUserDatafromEnvironment,以便它返回一个承诺,然后使用 Promise.all(array) 一次处理所有结果。 -
您好,感谢您的回复。你能告诉我怎么做吗..?我的意思是使用代码。
-
Promise.all()不好,因为它需要所有三种机制来解决。 AFAICS OP 希望 任何一个或多个 成功。也就是说,如果函数被包装以便它们总是以成功/失败结果解析,而不是在仍然可以工作的失败时生成reject。 -
@Alnitak 您能否详细说明您在这里所说的内容。
-
@Alnitak
Promise.all()非常适合用于此。您只需要处理每个提供程序中的错误,并将 null 或类似的内容返回到 Promise.all() 数组中的 Promise。
标签: javascript html node.js api