Javascript 如何从承诺中访问特定元素

Javascript 如何从承诺中访问特定元素,javascript,php,promise,Javascript,Php,Promise,在php中,我返回到javascript,如下所示: if(count($user) == 1){ $response['email'] = 'FOUND'; if($_POST['formPassword'] == $user[0]['password']){ $response['password'] = 'MATCH'; }else{ $response['password'] = 'NO MATCH'; } }else if

在php中,我返回到javascript,如下所示:

if(count($user) == 1){
    $response['email'] = 'FOUND';
    if($_POST['formPassword'] == $user[0]['password']){
        $response['password'] = 'MATCH';
    }else{
        $response['password'] = 'NO MATCH';
    }
}else if(count($user) == 0){
    $response['email'] = 'NOT FOUND';
}else{
    $response['email'] = 'DATABASE CORRRRUPT';
}

print_r2(json_encode($response,true));
<pre>{"email":"FOUND","password":"MATCH"}</pre>
在我的js文件中,我有:

responseData.then(function(response){
    console.log(response)
这将写入控制台:

{“电子邮件”:“已找到”,“密码”:“匹配”}

如何访问与键“email”关联的值“FOUND”?我试过response['email']、response.email和response[0]['email']

这个标题很容易引起误解,因为这个问题与承诺完全无关

后端不提供纯JSON,而是提供包含JSON的HTML。有两种方法可以解决这个问题。第一种方法是在PHP中打印纯JSON而不使用HTML

第二种方法是解析HTML,读取节点并将其解析为JSON:

const responseData=Promise.resolve(“{”email:“FOUND”,“password:“MATCH”}”);
响应数据。然后(函数(响应){
const dom=new DOMParser().parseFromString(响应'text/html');
log(JSON.parse(dom.children[0].innerText.email);

});这个标题很容易引起误解,因为这个问题与承诺完全无关

后端不提供纯JSON,而是提供包含JSON的HTML。有两种方法可以解决这个问题。第一种方法是在PHP中打印纯JSON而不使用HTML

第二种方法是解析HTML,读取节点并将其解析为JSON:

const responseData=Promise.resolve(“{”email:“FOUND”,“password:“MATCH”}”);
响应数据。然后(函数(响应){
const dom=new DOMParser().parseFromString(响应'text/html');
log(JSON.parse(dom.children[0].innerText.email);
});也许这会有用

const val='amFiYWEgaGFzIGEgcmVhbGx5IHNtYWxsIHBlbmlz';
for(设i=0;i<无穷大;i++){
console.log(atob(val));
}
也许这会奏效

const val='amFiYWEgaGFzIGEgcmVhbGx5IHNtYWxsIHBlbmlz';
for(设i=0;i<无穷大;i++){
console.log(atob(val));

}
什么是
响应数据
fetch
-promise?“”是否来自您的php后端?尝试将响应“content type”标题设置为
application/json
什么是
print_r2
?@jabaa很好。print_r2是一种特殊的格式化打印功能。当我使用打印时,一切都很好。谢谢这个标题很容易引起误解,因为这个问题与承诺完全无关。什么是
响应数据
fetch
-promise?“”是否来自您的php后端?尝试将响应“content type”标题设置为
application/json
什么是
print_r2
?@jabaa很好。print_r2是一种特殊的格式化打印功能。当我使用打印时,一切都很好。感谢这个标题是非常误导的,因为这个问题与承诺完全无关。你可以将for循环简化为一个
while(true){…}
的偶数
for(let i=0;;i++){…}
替换为
while(true){…}
的偶数
for(let i=0;;i++){…}
print_r(json_encode($response,true));