nodejs - 如何在内部提出请求?

时间:2018-04-30 00:20:21

标签: node.js

我需要首先生成key,然后使用key运行request下面的代码只是一个示例

 const getKey = () => {
        return new Promises(resolve, reject) => {
            const value =  somecode here;
             resolve (value);
        }
    }

getKey().then(val => {
    request({method: 'GET', url: 'http://www.google.com', key: val}, function (error, response, body) {
            if (!error){
                console.log(body)
            }

        }); 
    }
});

如何使用Promises

将它们链接在一起

1 个答案:

答案 0 :(得分:3)

使用request-promise库,然后从.then()处理程序内部返回内部promise。

你几乎不想将普通的异步回调与promises混合在一起。当遇到这个挑战时,要做的第一件事就是“使用”同步回调来“使用承诺”,这样你就可以将承诺链接起来。在这种情况下,request-promise库已经是request库的预定版本。这是你如何做到的。

const rp = require('request-promise');

const getKey = () => {
        return new Promises(resolve, reject) => {
            const value =  somecode here;
             resolve (value);
        }
    }

getKey().then(val => {
    return rp({method: 'GET', url: 'http://www.google.com', key: val});
}).then(result => {
    console.log(result);
}).catch(err => {
    console.log(err);
});

这会将内部承诺链接到外部承诺,以便承诺链的最终结果是内部承诺的结果。