如何从请求承诺中返回值

时间:2017-11-14 22:03:03

标签: javascript node.js request-promise

我目前正在尝试使用GitHub上的其他用户的一些代码。它的目标是包装特定网站的API。

现在代码执行此操作:

const rp = require('requests-promise');
function login(user, pass) {
    var hash = md5(`${user}-${md5(pass)}`);
    var options = {
        method: 'POST',
        uri: opts.url + 'Login.json',
        form: {
            Username: user,
            Hash: hash
        },
        json: true // Automatically stringifies the body to JSON
    };

    return rp(options).then(j => {
            if (j.Status) {
                self.loginData = j;
                if (j.Notifications.length > 0) {
                    console.log("User has a new notifications: " + j.Notifications.join(", "));
                }
                delete(self.loginData.Status);
                delete(self.loginData.Notifications);
            } else {
                throw new Error("Bad login.");
            }
            return Boolean(j.Status)); // fail-sucess
        })
    })
}

如何将promise的返回值作为登录函数的返回值?目前它只返回promise对象而不是预期值,这是一个与登录状态对应的布尔值。

0 个答案:

没有答案