私はFirebase関数で約束を返す関数を作成しようとしていますが、同期は成功しませんが、成功しません。Javascript:約束を返すwrite関数
ここに私が書いた機能です:
function doSomethingLong(param) {
https.get('http://www.myurl.com?param=' + param, (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end',() => {
console.log("Call succeeded. Response: " + data);
return true;
});
}).on("error", (err) => {
console.log("Call failed. Error: " + err.message);
return false;
});
}
を私はFirebase内の特定の変更が発生したときに、それを呼び出して、それが完了するまで待って、何かしたい:どんなに何
exports.someFunction = functions.database.ref('/users/{user_id}/param').onCreate(event => {
const param = event.data.val();
if (doSomethingLong(param)) {
console.log("ttt");
} else {
console.log("fff");
}
return null;
})
は、私は試して、の機能が終了する前にdoSomethingLong
が終了します。
手がかりはありますか?
だから、doSomethingLongを実行してから1回(「終わり」)が発生し、結果「data」を関数someFunctionに渡しますか? – KostasX
私が誤解していない場合、これはあなたが達成しようとしているものです:https://pastebin.com/hS5Bt8tY – KostasX
(元の質問に誤解を与える誤植がいくつか修正されました)。 @ KostasX、私が達成しようとしているのは:someFunctionが呼び出されたときに、doSomethingLongを呼び出して、完了するのを待ってから、それが戻ってくるはずです。 – user2145097