javascript - 将值从一个 promise 传递到下一个 promise

标签 javascript node.js callback promise

<分区>

对 javascript 有点陌生。 一直在处理 promise ,但是遇到了一个我不知道如何处理的问题。

如何将值传递给下一个 promise resolve?

这是我的代码

bot.on('ask.add_account_password', (msg) => {
    let username = users[msg.from.id].username;
    let password = msg.text;
    var accounts = require('./inc/account.js');
    accounts.login_account(username,password).then(function(data){
        var account = data.params;
        console.log(account);
        return accounts.store(msg.from.id,username,password,account.followerCount);
    }).then(function(data){
        let caption = "Your account "+account.username+"("+account.fullName+")has been added\n";
        return bot.sendPhoto(msg.from.id, account.picture, {caption:caption});
    })
    .catch(function(error){
        console.log(error);
        add_account(msg,error.name);
    });
});

在我创建标题变量的那一行,我试图访问在它之前的 block 中创建的帐户对象 (var account = data.params) 但我收到一个引用错误,指出它未定义。现在我可以通过将整个对象发送到 accounts.store 函数并让它在完成时解析对象来轻松绕过它,但这似乎是解决更大问题的肮脏解决方法。有没有更简洁的方法来做到这一点?

最佳答案

您可以在 main 函数中创建变量(并在 promise 中设置它),或者您可以将其作为第一个 promise 的结果而不是函数 store 的结果返回

关于javascript - 将值从一个 promise 传递到下一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401316/

相关文章:

javascript - 书签 LMS、Moodle SCORM

node.js - Typescript - 静态变量的未定义错误

typescript - 如何在 typescript 中取消回调 hell

javascript - setTimeout 是使用回调时避免 stackoverflow 的有效方法吗?

javascript - 搜索 javascript 对象的任何值

javascript - 如何通过多种方式激活功能?

javascript - NetBeans 语法突出显示、VueJS 单文件组件和 pug

garbage-collection - Node.js 和 V8 垃圾回收

node.js - 如何在 MEAN 堆栈中实现社交登录?

java - 使用回调将参数传递给 javascript 中的 dwr 调用函数