Promise を使用した非同期処理の途中でエラーが出てしまいます。
getMdFileFromStorage(md_data_path) .then((md_data) => { console.log("next action is mdToHtml"); return mdToHtml(md_data) }) .then((body_html) => { data.body = body_html; console.log("data is now have html : ", data); return buildHtml(data); }) .then((html) => { console.log("compiled html is send to next func : ", html); // ここの html が undefined に
上記に記載の最後の行で、変数が正しく受け渡せていない状況です。
その一つ前で実行されている関数buildHtml()
は、以下
const buildHtml = (data) => { ejs.renderFile('src/main_amp.ejs', { filename: 'src/main_amp.ejs', data: data }, 'utf-8', (error, html) => { if (error) { throw error; } console.log("html by ejs is this : ", html); // ここの html は 成功してる return html; } ) }
eje.renderFile
の結果をreturn
したいのですが、適切に返せていない状況で、いろいろ試行錯誤したのですがどれもうまくいきません。
具体的には、
・ ejs.renderFile
の前にもreturn
を付け、それ自体を返すようにする
・ const html = eje.renderFile
とし、その後return html;
してみる
どこに問題があるか、ご指南いただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/22 10:04