簡體   English   中英

JS - HTTP 請求使用不同的結果 function

[英]JS - HTTP Request using result in different function

我有一個使用以下代碼從 URL 獲取數據(字符串)的 GET 請求:

var https = require('https');
let urldata;

var options = {
    host: 'test.com',
    path: '/test.php'
}
var request = https.request(options, function (res) {
    let data = '';
    res.on('data', function (chunk) {
        data += chunk;
    });
    res.on('end', function () {
        urldata = data; 
        console.log(urldata);  //Returns the retrieved data from URL into console
    });
});
request.end();

現在我有第二個 function 需要我從 Request abvoe 獲得的數據:

async execute(message, args, Discord, client) {
    message.author.send(urldata);
}

問題是“urldata”在第二個 function 中是“未定義”,因為第一個是異步的並且還沒有給出結果。 我讀到我必須使用“回調”或“承諾”才能在我的第二個中使用第一個 function 中的數據。 我嘗試過,但無法獲得有效的結果。

如果有人可以幫助我將其重新編碼為回調或 promise,那就太棒了,這樣第一個 function 的數據可以用於第二個 function。

 const urldata = await Promise(resolve => { var request = https.request(options, function (res) { let data = ''; res.on('data', function (chunk) { data += chunk; }); res.on('end', function () { resolve(data) }); }); request.end(); }) console.log(urldata); //Returns the retrieved data from URL into console // Now you can run the second function with "urldata" in it

暫無
暫無

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

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