を完了するまで、私は2つの機能があります。待ちfs.readFileSyncが私のファイルfunctions.jsで
var email, url1
function getFile(_callback){
email = fs.readFileSync("C:/Emails/" + items[2])
_callback(email);
}
function getUrl(){
getLatestMail(function(email) {
email.split(/\n/).forEach(function(line) {
i++;
if (i == 52) {
var test = new Buffer(line, 'base64').toString();
var regex = /=(.+?)"/g
var result1 = regex.exec(test);
url1 = result1[1].toString();
console.log(url1);
}
});
getUrl()
exports.resetUrl = url1;
を、私はファイルを持っているが
var Functions = require('../pageobjects/functions.js');
var test = Functions.resetUrl;
console.log(test);
をtest.jsしかし、それは常にundefinedを返します! getUrl()のconsole.logは良い値を示しています。それは、関数getURlがロードされるまで、エクスポートが待機していないようです。これを解決する最善の方法は何ですか?この例では、不要なコード部分をすべて削除しました。
正しいですが、 'readFileSync'は非同期です。あなたはそれを回避することができますし、 'getFile'を呼び出すコードを投稿していないので、あなたはそれをどうやって行うのか分からず、代わりに同期' readFile'を使うこともできます。 – adeneo
'readFileSync'の代わりに' readFile'を使うかもしれません:http://stackoverflow.com/a/22863818/6429774 – Phil
'functions.js'に' resetUrl'変数を定義する必要があります。 –