[英]Javascript - then function not executing
这是我的问题
const { Client } = require('destiny2');
const client = new Client('apiKey');
window.memberName = function(){
var pName = document.getElementById('memberName');
var pId = document.getElementById('memberId');
var name = document.getElementById('search').value;
client.getProfile(name, '4')
.then(data => console.log(data));
client.getProfile(name, '4').then(
function(value) {
data => pId.appendChild(document.createTextNode("Platform:" +
data.profile.platform[1]));
data => pName.appendChild(document.createTextNode("Name:" +
data.profile.displayName));
}
);
}
client.getProfile(name, '4').then...
此函数中的任何内容client.getProfile(name, '4').then...
执行。
您的第二个client.getProfile
调用错误。
Promise.prototype.then需要一个onFulfilled
函数。
p.then(onFulfilled[, onRejected]);
代替:
client.getProfile(name, '4').then(
function(value) {
data => pId.appendChild(document.createTextNode("Platform:" + data.profile.platform[1]));
// ^^^^
// Remove anonymous function
data => pName.appendChild(document.createTextNode("Name:" + data.profile.displayName));
// ^^^^
// Remove anonymous function
}
);
做这个:
client.getProfile(name, '4').then(data => {
pId.appendChild(document.createTextNode(`Platform: ${data.profile.platform[1]}`));
pName.appendChild(document.createTextNode(`Name: ${data.profile.displayName}`));
});
在lambda内部,您仅定义了2个匿名函数,而没有实际执行:
client.getProfile(name, '4').then(
function(value) {
data => pId.appendChild(document.createTextNode("Platform:" +
data.profile.platform[1]));
data => pName.appendChild(document.createTextNode("Name:" +
data.profile.displayName));
}
);
用实际电话代替
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.