簡體   English   中英

從自定義函數返回承諾

[英]Return a promise from a custom function

最初在GitHub上


你好

您能否告訴我如何使用bluebird從自定義函數中返回承諾? 這是我正在使用的:

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兌現承諾?

我將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM