我目前正在尝试使用 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对象而不是预期的值,它是一个与登录状态相对应的布尔值。