从自定义函数返回promise

Return a promise from a custom function

本文关键字:promise 返回 自定义函数      更新时间:2024-05-28

最初在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,使其看起来像这样:

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