7

LocalStorage에서 사용하는 약간의 스 니펫이 있지만 크롬 저장 장치에서 아직 작동하지 않습니다. 변수가 크롬 저장 장치에 설정되었는지 확인하는 방법

내 어플은

var bookNarration=parseInt(localStorage.getItem("narration")); 

그 변수가 정의되지 않은 경우 로컬 스토리지

에서 변수를 확인 시작

, 그것은 내 앱이 처음으로 개설되었으며, I 후 사용하여 스위치에 bookLanguage을 처리하는 것을 의미한다 " 기본 "선언.

var bookNarration=parseInt(chrome.storage.local.get("narration")); 

하지만 바로이 오류를 얻을 :

Invocation of form get(string) doesn't match definition get(optional string or array or object keys, function callback)

나는 많은 시간 동안 검색 한을

switch(window.bookNarration) 
    { 
    case 2: 
     window.narrationShift = window.spanishShift; 
    break; 
    case 3: 
     window.narrationShift = window.frenchShift; 
    break; 
    case 10: 
     window.narrationShift = window.neutralShift; 
    break; 
    default: 
     window.narrationShift = 0; } 

은 내가이 길에 코드를 변경 크롬 저장 작업을 만들려면 솔루션을 찾으려고 노력하지만 작동하게 만들 수는 없습니다. 값이 이미 정의되어 있는지 확인해야하는 경우, 기본값이 아닌 경우 set() 메서드를 사용하여 기본값을 저장할 수 있습니다.

답변

8

기능 expects a callback : (이 이제 허용 대답 이후로 변경하고 있다면 나도 몰라 의미) 지금 캐치를 사용할 필요가

chrome.storage.local.get("narration", function(data) 
{ 
    if(chrome.runtime.lastError) 
    { 
     /* error */ 

     return; 
    } 

    var bookNarration = parseInt(data.narration); 

    switch(bookNarration) 
    { 
     /* ... */ 
    }; 
}); 
+0

존재하지 않아야 항목 (들)은 기본값과 함께 원하는에 전달할 수 있습니다! 캐치를 사용하여 기본값을 설정합니다. 고맙습니다! –

+0

마지막 줄은 다음과 같아야합니다. "});" – Kudlas

+0

@Kudlas 당신은 올바르게 믿습니다. 감사. –

1

없습니다.

당신은 항목이 의미가 있습니다

chrome.storage.local.get({narration: "", num: 0, books: []}, function(data) 
{ 
    var bookNarration = parseInt(data.narration); 

    switch(bookNarration) 
    { 
     var numBooks= data.books.length 
     /* ... */ 
    }; 
}); 
관련 문제