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