簡體   English   中英

如何將參數從一個異步函數傳遞給Node.js中的另一個函數?

[英]How to pass parameter from one async function to another in nodejs?

這是代碼,

 var WebPageTest = require('webpagetest'); var wpt = new WebPageTest('url of the server'); var request = require('request'); var data_url; var http = require('http'); var fs = require('fs'); var test_id; var step = require('step'); step( wpt.runTest('http://google.com', function(err, data) { console.log(err || data); console.log('---------------'); console.log('inside wptruntest function'); console.log('----------------'); data_url=data.data.summaryCSV; test_id=data.data.testId; console.log(data_url); console.log('---------------'); console.log(test_id); console.log('---------------'); }), request(data_url, function (error, response, body) { if (error) { console.log(error); } console.log('inside request MODULE'); console.log('---------------'); console.log(body); var data = body; }) ); 

我想在我的下一個異步函數(即請求)中使用data_url的值,以便我可以從該url中獲取結果,此外,我還需要同步運行這兩個函數,控制台上的錯誤是:'undefined不是有效的uri或選項對象”

我該如何實現?

您必須按如下方式使用async.waterfall

var async = reqquire('async');
    async.waterfall([
        function(callback) {
            callback(null, 'one', 'two');
        },
        function(arg1, arg2, callback) {
          // arg1 now equals 'one' and arg2 now equals 'two'
            callback(null, 'three');
        },
        function(arg1, callback) {
            // arg1 now equals 'three'
            callback(null, 'done');
        }
    ], function (err, result) {
        // result now equals 'done'
    });

暫無
暫無

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

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