เป็นsetItem(key,value)
ตรงกันฟังก์ชั่น?
localStorage.setItem("key",someText);
เป็นsetItem(key,value)
ตรงกันฟังก์ชั่น?
localStorage.setItem("key",someText);
คำตอบ:
ไม่การlocalStorage
โทรทั้งหมดเป็นแบบซิงโครนัส
nbf
หรือexp
จากโทเค็นการตรวจสอบสิทธิ์
แท้จริง พื้นที่เก็บข้อมูลบนเว็บไม่ได้เป็นส่วนหนึ่งของมาตรฐานหลักของ HTML5 อีกต่อไป แต่ถูกแยกออก
ข้อกำหนด (ร่าง) ที่เกี่ยวข้องสามารถพบได้ที่นี่และสิ่งหนึ่งที่คุณจะสังเกตเห็นก็คือมันไม่ได้กล่าวถึงซิงโครนัสหรืออะซิงโครนัสที่ใดก็ได้
อย่างไรก็ตามการวิเคราะห์ข้อความจะแนะนำว่าต้องซิงโครนัส (ตัวหนาของฉัน):
วิธีsetItem (คีย์ค่า)ต้องตรวจสอบก่อนว่าคู่คีย์ / ค่ากับคีย์ที่กำหนดมีอยู่แล้วในรายการที่เกี่ยวข้องกับออบเจ็กต์หรือไม่
หากไม่เป็นเช่นนั้นจะต้องเพิ่มคู่คีย์ / ค่าใหม่ในรายการด้วยคีย์ที่กำหนดและกำหนดค่าเป็นค่า
หากคีย์ที่กำหนดมีอยู่ในรายการและค่าของคีย์นั้นไม่เท่ากับค่าก็จะต้องมีการอัปเดตค่าเป็นค่า หากค่าก่อนหน้านี้เท่ากับค่าเมธอดจะต้องไม่ทำอะไรเลย
ในมาตรฐานคำพูดชอบmust
, shall
และmay
ดำเนินการมากความหมายเฉพาะ ความจริงที่ว่ามันกำลังพูดถึงสิ่งที่วิธีการต้องทำหมายความว่าวิธีการนั้นต้องทำไม่ใช่เลื่อนไปในภายหลัง
สิ่งนี้ยังขัดกับสามัญสำนึกอีกด้วย หากsetItem
เป็นแบบอะซิงโครนัสคุณสามารถตั้งค่ารายการเป็นค่าเฉพาะจากนั้นเรียกคืนทันทีโดยรับค่าก่อนหน้า
มีเป็นบันทึกที่ด้านล่างของส่วนอินเตอร์เฟซการจัดเก็บข้อมูลที่มีคำแนะนำที่เป็นไปได้ของพฤติกรรมที่ไม่ตรงกันนี้:
ข้อกำหนดนี้ไม่จำเป็นต้องให้วิธีการข้างต้นรอจนกว่าข้อมูลจะถูกเขียนลงดิสก์จริง จำเป็นต้องมีความสอดคล้องในสิ่งที่สคริปต์ต่างๆที่เข้าถึงรายการคู่คีย์ / ค่าเดียวกันเท่านั้นที่จำเป็น
อย่างไรก็ตามนั่นเป็นเพียงในแง่ของสิ่งที่เขียนลงในพื้นที่เก็บข้อมูลระยะยาวเท่านั้น ประโยคสุดท้ายระบุว่าสคริปต์ที่เข้าถึงอ็อบเจ็กต์หน่วยเก็บข้อมูลเดียวกันจำเป็นเพื่อดูสิ่งต่างๆพร้อมกัน
LocalStorage
ฉันต้องเก็บวัตถุบางอย่างที่ฉันต้องหน้าแตกต่างกันที่เหมาะสมที่สุดคือการใช้ เมื่อฉันเก็บ 10 รายการฉันพลาด 3 รายการ ฉันเชื่อจริงๆว่ามันเป็นแบบอะซิงโครนัส แต่จะตรวจสอบได้อย่างไรว่าเสร็จแล้ว ฉันต้องเพิ่มการโทรกลับที่ไหน
must
, shall
, may
ความคิดเห็นข้างต้น RFC2119 ietf.org/rfc/rfc2119.txt
คำถามนี้ได้รับคำตอบแล้ว สำหรับใครก็ตามที่จะมาถึงสิ่งนี้ในอนาคต javascript จะซิงโครนัสโดยธรรมชาติ สิ่งต่าง ๆ เป็นเพียง async ที่เราระบุให้ทำเช่นนั้น ด้วยเหตุนี้คุณจึงสามารถสมมติว่าทุกสิ่งเป็นแบบซิงโครนัสเว้นแต่จะระบุให้เป็น async นี่คือด้วยจาวาสคริปต์ไม่ใช่เฟรมเวิร์กที่เขียนด้วย Javascript บางครั้งพวกเขาทำลายการปฏิบัตินี้ เช่น NodeJs