JS:.then在尝试获取promise的内容时不是函数

时间:2017-01-27 02:26:14

标签: javascript

var rbx = require('roblox-js');

rbx.login('INF_BOT', '$$$')
.then(function (info) {
 console.log('Logged in with ID ' + info.userId);
 rbx.getPlayers(539310, 1)
.then(function (players) {
  for( var Plr in players) {
    console.log(Plr)
  }
})
.catch(function (err){
  console.error(err.stack);
})
})
   .catch(function (err) {
    console.error(err.stack);
});

我不断收到输出:http://prntscr.com/e0upfl

以下是getPlayers.js:http://pastebin.com/wD6bjStc

我不知道为什么。然后抛出错误,基本上是getPlayers返回和对象,在该对象中有一个promise和status,在promis中有一个对象...... Atleast是API正在显示的内容我

基本上我正在运行一个名为getPlayers()的函数,但它返回一个对象,在该对象中是一个Promise和一个函数。我需要得到承诺,然后才能......

1 个答案:

答案 0 :(得分:2)

我很无聊所以我决定帮你解决问题,为你导航roblox-js lib

代码heregetPlayers函数返回的内容。看起来您需要查找getPlayers().promise.then而不仅仅是getPlayers().then,因为该函数不会仅返回承诺。它返回一个对象,该对象具有一个名为promise的属性(我想要的是我想要的)和一个getStatus函数。

var rbx = require('roblox-js');

rbx.login('INF_BOT', '$$$')
  .then(function (info) {
    console.log('Logged in with ID ' + info.userId);
    rbx.getPlayers(539310, 1).promise // <-------------------------------
      .then(function (players) {
        for (var Plr in players) {
          console.log(Plr);
        }
      })
      .catch(function (err) {
        console.error(err.stack);
      })
  })
  .catch(function (err) {
    console.error(err.stack);
  });