如何在TypeScript中使用RequestPromise?

时间:2016-11-01 08:23:25

标签: javascript typescript

我已经安装了request-promise库并试图在我的TypeScript应用程序中使用它,但没有太多运气。

如果我这样使用它:

import {RequestPromise} from'request-promise';

RequestPromise('http://www.google.com')
        .then(function (htmlString) {
            // Process html...
        })
        .catch(function (err) {
            // Crawling failed...
        });

我在TS编译输出上看到了这个:

error TS2304: Cannot find name 'RequestPromise'.

如果我这样使用它:

import * as rp from'request-promise';

rp('http://www.google.com')
    .then(function (htmlString) {
        // Process html...
    })
    .catch(function (err) {
        // Crawling failed...
    });

我看到一个错误,指出对象rp上没有'.then()'方法。

如何在TypeScript中正确使用它?

3 个答案:

答案 0 :(得分:12)

您必须导入所有(*)而不仅仅是RequestPromise

import * as request from "request-promise";
request.get(...);

This answer详细说明了import/fromrequire之间的差异。

答案 1 :(得分:2)

request-promise有一个用于打字稿的程序包

  1. npm我--save-dev @ types / request-promise
  2. import'从“请求-承诺”中获取{获取,放置,发布};

用法

get(options).then(body => {

    console.log(body)

}).catch(e => reject);

答案 2 :(得分:0)

我以这种方式使用请求承诺

import * as requestPromise from 'request-promise';

const options = {
    uri: _url,
    proxy: https://example.host.com:0000,
    headers: {
        Authorization: 'Bearer ' + token
    }
};

requestPromise.get(options, (error, response) => {
    if (error) {
        // Do error handling stuff
    } else {
        if (response.statusCode !== 200) {
             // Do error handling stuff
        } else {
             // Do success stuff here
        }
    }
});