【发布时间】:2018-04-17 04:20:36
【问题描述】:
我对 JavaScript 和 node.js 还很陌生,因此当我的机器人需要运行时,被投入 Promises 是相当令人生畏的。
var storedUserID;
ROBLOX.getIdFromUsername(accountArg).then(function(userID) {
message.reply("your id is " + userID);
storedUserID = userID;
});
message.reply(storedUserID);
这基本上就是我写的内容,它创建了一个名为“storedUserID”的变量,我想稍后对其进行更新。我正在尝试在 Promise 中更新它,但它似乎不起作用。
在代码中,有 message.reply("your id is " + userID); 可以按预期工作。它将打印给用户“您的 id 是 [NUMBER]”,所以我知道 userID 不为空。
但是,当我在 Promise 之外运行 message.reply(storedUserID); 时,由于未保存变量,因此不会打印任何内容。我不知道为什么。
任何帮助将不胜感激,因为这将用于我在大学的工作! 谢谢!
【问题讨论】:
-
then是异步运行的。当您记录该回调尚未执行时。 -
@IngoBürk 请参阅 “我想稍后更新的 OP。” 链接的问答如何演示如何更改
Promise的值?跨度>
标签: javascript node.js