前提・実現したいこと
Promise処理で設定1、設定2のコードを連続で使用したい場合、
使用1に書いてみたのですが、こちらの記載で問題ないでしょうか。
もう少し簡潔にできる、何かが抜けている等がありましたら、教えて頂ければ幸いです。
該当のソースコード
javascript
1// 設定1 2const readScript = () => { 3 return new Promise((resolve, reject) => { 4 const script = document.createElement('script'); 5 script.setAttribute('src', 'test.js'); 6 script.setAttribute('charset', 'utf-8'); 7 document.getElementsByTagName('body')[0].appendChild(script); 8 script.onload = script.onreadystatechange = () => { 9 if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') { 10 resolve('成功1'); 11 } 12 }; 13 }); 14};
javascript
1// 設定2 2const ChangePermission = () => { 3 return new Promise((resolve, reject) => { 4 if ('permissions' in navigator) { 5 navigator.permissions.query({ name: 'notifications' }).then((notificationPerm) => { 6 notificationPerm.onchange = () => { 7 if (notificationPerm.state === "granted") { 8 console.debug('通知が許可に変更'); 9 resolve('成功2'); 10 } 11 }; 12 }); 13 } 14 }); 15};
javascript
1// 使用1 連続で使用してみた場合 2readScript() 3 .then((value) => { //スクリプト読み込み後 4 console.debug(value); 5 ChangePermission() 6 .then((value) => { //通知許可時 7 console.debug(value); 8 //行いたい処理 9 }).catch((error) => { 10 console.debug(`ChangePermission ${error}.`); 11 }); 12 }).catch((error) => { 13 console.debug(`readScript ${error}.`); 14 });
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/16 08:23
2018/03/16 08:41
2018/03/16 08:52