簡體   English   中英

Javascript-然后功能無法執行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM