[英]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.