7

LocalStorage ile çalışan küçük bir snippet'ım var ancak Chrome Depolama düzeninde henüz çalışamam. Krom depolama biriminde bir değişkenin ayarlanıp ayarlanmadığı nasıl kontrol edilir

başvurum ben

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

o değişken tanımsız ise localStorage

bir değişkeni kontrol başlar

, benim uygulama ilk kez açıldıktan ve ben sonra kullanarak bir anahtarı bookLanguage işlemek anlamına gelir " varsayılan "beyan".

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

Fakat derhal bu hatayı alıyorum:

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

Ben saatlerce arama edilmiştir

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; } 

ben bu yolda benim kodunu değiştirmek Krom Depolama ile çalışmasını sağlamak için bir çözüm bulmaya çalışıyorum ama işe yaramayacağım. Değerin zaten tanımlanmış olup olmadığını kontrol etmem gereken bir şey var. Öyle değilse, varsayılan değerinimi saklamak için set() yöntemini kullanabilirdim.

cevap

8

fonksiyonu expects a callback: (bu artık kabul edilen yanıt yana değişen ve eğer bilmiyorum anlamında) şimdi yakalamak kullanmaya gerek yoktur

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

     return; 
    } 

    var bookNarration = parseInt(data.narration); 

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

var olmamalıdır öğe (ler) varsayılan birlikte istiyorum geçirebilirsiniz! Varsayılan değerleri ayarlamak için catch kullanıyorum. Teşekkür ederim! –

+0

Son satırın şöyle olması gerektiğine inanıyorum: "});" – Kudlas

+0

@Kudlas Doğru olduğuna inanıyorsunuz. Teşekkürler. –

1

bu.

Öğe Çalışıyor

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

    switch(bookNarration) 
    { 
     var numBooks= data.books.length 
     /* ... */ 
    }; 
}); 
İlgili konular