0
我需要集成測試之前先創建一些文件:摩卡,集成JS測試和異步IO
before(function(done) {
fs.mkdir('tmp');
fs.mkdir('tmp/css');
fs.mkdir('tmp/js');
fs.mkdir('tmp/lib');
fs.open('tmp/index.htm', 'w');
fs.open('tmp/some.js', 'w');
fs.open('tmp/some.css', 'w');
fs.open('tmp/css/main.css', 'w');
fs.open('tmp/css/sub.css', 'w');
fs.open('tmp/js/main.js', 'w');
fs.open('tmp/lib/jquery.js', 'w');
done();
});
的問題是,我得到:
fs: missing callback Error: ENOENT, mkdir 'tmp/css'
fs: missing callback Error: ENOENT, mkdir 'tmp/js'
fs: missing callback Error: ENOENT, mkdir 'tmp/lib'
fs: missing callback Error: ENOENT, open 'tmp/css/main.css'
fs: missing callback Error: ENOENT, open 'tmp/css/sub.css'
fs: missing callback Error: ENOENT, open 'tmp/js/main.js'
fs: missing callback Error: ENOENT, open 'tmp/lib/jquery.js'
我認爲問題是,它會在創建目錄之前嘗試同步打開文件。我可以使用fs.mkdirSync
並將回調傳遞給每個回調,但是我遇到done();
問題。如果我想要讓代碼正確完成,該代碼應該如何顯示?