0
私はIndexedDBを約束していますが、関数checkUrlLinkは値を返しません。この約束をどうやって解決するのですか?期待値を解決せず、期待値を返さないと約束します。
これは私のコードです:
var promise = new Promise(function(resolve) {
return checkUrlLink(send_to_url, event);
}).then(function(url_link) {
console.log('URL LINK in promisse' + url_link);
return clients.openWindow(url_link);
});
function checkUrlLink(send_to_url, event) {
return new Promise((resolve,reject) => {
var request = indexedDB.open('db', 1);
var original_event = event;
request.onsuccess = function (event) {
//db = event.target.result;
var url_link = "url_link";
var store = request.result.transaction("uid", "readwrite").objectStore("uid");
var getRequest = store.get(url_link);
getRequest.onsuccess = function() {
var result = getRequest.result;
if (result) {
url_link = result;
//send_to_url(original_event,url_link);
resolve(url_link);
} else {
url_link_value = self.registration.scope;
store.add(url_link_value, url_link);
//send_to_url(original_event, url_link_value);
resolve(url_link_value);
}
};
};
request.onupgradeneeded = function (event) {
var db = event.target.result;
var store = db.createObjectStore('url_link');
};
});
}
私はサービスワーカー内でこれを実行しています。必要はそのためにありません - あなたはnew Promise
内部の約束を返す関数をラップしている、すなわち
あなたの最初から返された値に解決されます約束ですあなたが最初の約束を決して解決しないので決して決して解決しない - 約束は馬鹿ではない:p - '関数checkUrlLinkはどんな値も返さない' - はい、それは約束を返す –
'checkUrlLink'は、解決されました。値を返しません。 – pacifier21
try - 'var promise = checkUrlLink(send_to_url、event).then(function(url_link){ console.log(promisse '+ url_linkのURLリンク); return clients.openWindow(url_link); } –