[英]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.