尝试访问Fortnite-API时出现UnhandledPromiseRejectionWarning警告?

时间:2018-10-26 06:06:58

标签: javascript node.js api

我正在尝试使用node.js访问fortnite API。我已经按照文档中的说明进行了所有设置,但是出现了以下几个错误:

Fortnite-API - Credentials Params OK
(node:3036) UnhandledPromiseRejectionWarning: #<Object>
(node:3036) UnhandledPromiseRejectionWarning: Unhandled promise 
rejection. This error originated either by throwing inside of an async 
function without a catch block, or by rejecting a promise which was not 
handled with .catch(). (rejection id: 1)
(node:3036) [DEP0018] DeprecationWarning: Unhandled promise rejections 
are deprecated. In the future, promise rejections that are not handled 
will terminate the Node.js process with a non-zero exit code.

到目前为止,我的代码是:

const Fortnite = require("fortnite-api");

let fortniteAPI = new Fortnite(
[
    "redacted",
    "redacted",
    "redacted",
    "redacted"  
],
{
    debug: true
}
);

fortniteAPI.login().then(() => {
fortniteAPI
    .checkPlayer("x got", "pc")
    .then(stats => {
        console.log(stats);
    })
    .catch(err => {
        console.log(err);
    });
});

这是我第一次自己弄乱node.js,所以我真的不知道这些错误是怎么回事。我曾尝试过搜索错误,但是所有的解释要么让我费解,要么看起来好像是用另一种语言写的。

编辑:对于以后查看此文件的任何人,我的错误都是由在我的帐户上启用2FA(2因子身份验证)引起的。您将不得不完全禁用它。另外,稍后将发现Fiddler 4在启动游戏以获取Fortnite API密钥后将无法工作。我经过数小时的谷歌搜索后发现了这些,所以我将其留在这里:

客户启动器令牌:MzRhMDJjZjhmNDQxNGUyOWIxNTkyMTg3NmRhMzZmOWE6ZGFhZmJjY2M3Mzc3NDUwMzlkZmZlNTNkOTRmYzc2Y2Y =

FORTNITE客户令牌:ZWM2ODRiOGM2ODdmNDc5ZmFkZWEzY2IyYWQ4M2Y1YzY6ZTFmMzFjMjExZjI4NDEzMTg2MjYyZDM3YTEzZmM4NGQ =

(请确保包括“ =“)

2 个答案:

答案 0 :(得分:1)

您能否在如下所示的登录承诺中添加一个问题。看看您是否能够捕获错误。

fortniteAPI.login().then(() => {
fortniteAPI
.checkPlayer("x got", "pc")
.then(stats => {
    console.log(stats);
})
.catch(err => {
    console.log(err);
});
}).catch((error)=>{console.log('error at login-->',error)});

答案 1 :(得分:0)

您只处理内部checkPlayer承诺中的错误,而不处理login承诺中的错误。不要在不需要时嵌套then调用,而只是chain them并在最后安装错误处理程序:

fortniteAPI.login()
.then(() => fortniteAPI.checkPlayer("x got", "pc")
.then(stats => {
    console.log(stats);
}, err => {
    console.log(err);
});

这可能不会阻止该错误,但它将在您的console.log(err)行中进行处理,而不是将其打印为未处理的拒绝。