मैंने request-promise लाइब्रेरी स्थापित की है और इसे अपने टाइपस्क्रिप्ट ऐप में उपयोग करने की कोशिश कर रहा हूं लेकिन बिना किसी किस्मत के।

अगर मैं इसे इस तरह उपयोग करता हूं:

import {RequestPromise} from'request-promise';

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

मैं इसे टीएस संकलन आउटपुट पर देखता हूं:

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...
    });

मुझे एक त्रुटि दिखाई देती है जो कहती है कि ऑब्जेक्ट आरपी पर कोई '.then ()' विधि नहीं है।

मैं इसे टाइपस्क्रिप्ट के साथ ठीक से कैसे उपयोग करूं?

19
Sergei Basharov 1 नवम्बर 2016, 11:23
1
क्या आपने import rp from 'request-promise'; की कोशिश की है और फिर rp का उपयोग कर रहे हैं जैसा आपने ऊपर किया है?
 – 
T.J. Crowder
1 नवम्बर 2016, 11:26
अब यह संकलित हो जाता है, लेकिन मुझे अब TypeError: Uncaught error: request_promise_1.default is not a function दिखाई देता है जब ऐप चला रहा हो और उस कोड को कॉल कर रहा हो।
 – 
Sergei Basharov
1 नवम्बर 2016, 11:32
1
मैंने import rp = require('request-promise') की कोशिश की और इसने त्रुटि को ठीक कर दिया। धन्यवाद!
 – 
Sergei Basharov
1 नवम्बर 2016, 11:38
मुझे समझ में नहीं आया कि यह तब तक क्यों काम करता है जब तक कि मैं यह उत्तर नहीं पढ़ता। TL;DR - import * as एक मॉड्यूल ऑब्जेक्ट बनाता है, जो एक फ़ंक्शन की तरह "कॉल करने योग्य" नहीं है।
 – 
Sherwood Callaway
17 अप्रैल 2018, 01:31

3 जवाब

आपको केवल RequestPromise ही नहीं, सभी (*) आयात करने होंगे:

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

यह जवाब import/from और require.

19
Dave Clark 10 जुलाई 2017, 18:59

अनुरोध-वादे में टाइपप्रति के लिए एक पैकेज है

npm i --save-dev @types/request-promise
import { get, put, post } from 'request-promise';

प्रयोग

get(options).then(body => {

    console.log(body)

}).catch(e => reject);
12
Ericgit 26 अगस्त 2020, 15:51

मैं इस तरह से अनुरोध-वादे का उपयोग करता हूं

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
        }
    }
});
1
Kokkonda Abhilash 4 जिंदा 2019, 12:00
आप इसे एक वादे के रूप में (.then(...) के साथ) लेकिन कॉलबैक के रूप में उपयोग क्यों नहीं करते?
 – 
colin
22 नवम्बर 2019, 11:28