簡體   English   中英

node.js-使結果全局可用(請求模塊)

[英]node.js - making result available globally (Request module)

我正在嘗試處理從請求返回的JSON結果,因此我需要在此請求調用之外擴展其范圍。 為此,我用一個空字符串聲明了data變量,並將結果分配給此data但它不顯示結果。

我該怎么做?

module.exports = function(callback) {

    var request = require("request")
    var url = "http://sheetsu.com/apis/94dc0db4"
    var data = "";

    request({
        url: url,
        json: true
    }, function (error, response, body) {

        if (!error && response.statusCode === 200) {
            callback(body)

            data = body;

        }
    })

    console.log(data);


}

這是經典的異步混淆:您的console.log調用將發生在http請求回調之前。

您的腳本按以下順序執行:

  1. request()被執行
  2. console.log(data)
  3. request()回調函數,在其中為data賦值

如果要打印data ,則必須在請求回調函數中進行處理。 異步模塊在執行異步任務時非常有用,特別是在您需要按特定順序執行任務並使用此請求中的數據時。

暫無
暫無

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

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