javascript - 从自定义函数返回 promise

标签 javascript node.js redis promise bluebird

最初在 GitHub 上询问


你好,

你能告诉我如何使用 bluebird 从自定义函数返回一个 promise 吗?这是我正在处理的内容:

var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var P = require('bluebird');

var redisSessionStore = new RedisStore({client: redisClient});
P.promisifyAll(redisSessionStore);

redisSessionStore.getAsync('active_session').then(function(data) {  
    if(!data || (data.timestamp < Data.now())) {
        return sulogin(params);
    }
}).then(function(values) { // expecting sulogin to return a promise
  // do another async call
});

function sulogin(params){

}

如何让 sulogin 返回一个 promise?

最佳答案

我将 sulogin 修改为如下所示:

var http = require('http');
var Promise = require('bluebird');

function sulogin(arg, fn) {
    Promise.props({
        host:"localhost",
        port: 8080,
        path: '/uaa/login.do',
        method: 'POST',
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).then(function(result) {
        return http.requestAsync(result);
    });
}

感谢https://github.com/petkaantonov/bluebird/issues/196

关于javascript - 从自定义函数返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28713631/

相关文章:

python - 如何为具有许多不同查询变量的 Python Web 应用程序构建数据库缓存(memcached/Redis)?

node.js - Node worker_threads + 集群 + 亲和性

node.js - graphQL - 类型必须是输出类型

mongodb - 统计系统的最佳数据库

javascript - 为什么 jQuery Map 会自动展平返回的数组?

javascript - AngularJS - 使用 Resolve 将数据传递到模式

javascript - 从 THREE.LineSegment 添加和删除顶点

javascript - 如何在 JavaScript forEach 函数中提醒一次?

javascript - 包版本更改时如何通知?

node.js - 无法解释的 Node.js 504s