通知に One-signal API を使用しています。そこのAPIからユーザーIDを取得したいのですが、以下は私のコードです。
function setNotificationPermission()
{
var id ;
try
{
OneSignal.push(["getUserId", function(userId) {
console.log("OneSignal User ID inside:"+ userId);
id = userId;
}]);
console.log("OneSignal User ID outside:"+ id);
window.parent.postMessage("Player ID"+id, "http://example.com");
}
catch(e){}
}
そして、私は以下のように答えを得ています
OneSignal User ID outside:
OneSignal User ID inside: f39fd4f1-406f-4c96-8365-5a471f77da3d
私が1つのシグナルを呼び出しているメソッドは非同期であるため、応答を取得する前に私の window.parent.postMessage() メソッドが実行されます。対処方法を教えてください。私の OneSignal.push() が完全に呼び出されるまで待つ方法を意味します