الفرق بين المراجعتين لصفحة: «ReactNative/asyncstorage»
رقية-بورية (نقاش | مساهمات) ط مراجعة |
جميل-بيلوني (نقاش | مساهمات) |
||
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:AsyncStorage في | <noinclude>{{DISPLAYTITLE:الواجهة AsyncStorage في React Native}}</noinclude><blockquote>'''مهملة:''' استخدم إحدى [https://reactnative.directory/?search=storage الحزم التي يوفرها المجتمع] بدلًا عنها.</blockquote><code>AsyncStorage</code> هو نظام تخزين مستمر غير مشفّر وغير متزامن، يُخزن البيانات في صورة أزواج <code>(key: value)</code>، وهو نظام موحّد لكلّ أجزاء التطبيق، ويجب استعماله بدلًا عن <code>LocalStorage</code>. | ||
''' | |||
<code>AsyncStorage</code> هو نظام تخزين مستمر غير مشفّر وغير متزامن، يُخزن البيانات في صورة أزواج <code>(key: value)</code>، وهو نظام موحّد لكلّ أجزاء التطبيق، ويجب استعماله بدلًا عن <code>LocalStorage</code>. | |||
يُفضّل استخدام التجريد (abstraction) على مستوى أعلى من <code>AsyncStorage</code> بدلًا من استخدامه على <code>AsyncStorage</code> مباشرةً في حالة التخزين الثقيل للبيانات. | يُفضّل استخدام التجريد (abstraction) على مستوى أعلى من <code>AsyncStorage</code> بدلًا من استخدامه على <code>AsyncStorage</code> مباشرةً في حالة التخزين الثقيل للبيانات. | ||
سطر 8: | سطر 5: | ||
يدعم نظام iOS نظام التخزين <code>AsyncStorage</code> بواسطة شيفرة أصلية تُخزِّن القيم الصغيرة في قاموس متسلسل، والقيم الكبيرة في ملفّات منفصلة؛ أمّا نظام أندويد فسيتخدم إمّا <code>RocksDB</code> أو <code>SQLite</code> بناءً على ما هو متاح. | يدعم نظام iOS نظام التخزين <code>AsyncStorage</code> بواسطة شيفرة أصلية تُخزِّن القيم الصغيرة في قاموس متسلسل، والقيم الكبيرة في ملفّات منفصلة؛ أمّا نظام أندويد فسيتخدم إمّا <code>RocksDB</code> أو <code>SQLite</code> بناءً على ما هو متاح. | ||
شيفرة [[JavaScript| | شيفرة [[JavaScript|جافاسكربت]] الخاصة بنظام التخزين <code>AsyncStorage</code> توفِّر واجهة برمجة تطبيقات (API) واضحة، وكائنات خطأ (Error Objects)، ودوال غير متعددة. كلّ دالة في واجهة برمجة التطبيقات (API) تُرجع وعدًا (Promise). | ||
== مثال == | |||
مثال لاستيراد مكتبة <code>AsyncStorage</code>: | |||
<syntaxhighlight class="react" lang="javascript">import { AsyncStorage} from 'react-native';</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">import { AsyncStorage} from 'react-native';</syntaxhighlight> | ||
حفظ البيانات: | |||
<syntaxhighlight class="react" lang="javascript">_storeData = async () => { | <syntaxhighlight class="react" lang="javascript">_storeData = async () => { | ||
سطر 25: | سطر 23: | ||
} | } | ||
};</syntaxhighlight> | };</syntaxhighlight> | ||
قراءة البيانات: | |||
<syntaxhighlight class="react" lang="javascript">_retrieveData = async () => { | <syntaxhighlight class="react" lang="javascript">_retrieveData = async () => { | ||
سطر 40: | سطر 38: | ||
__toc__ | __toc__ | ||
== | == التوابع == | ||
=== <code>getItem()</code> === | === <code>getItem()</code> === | ||
سطر 61: | سطر 59: | ||
|- | |- | ||
| <code>callback</code> | | <code>callback</code> | ||
| | | ?(error: ?Error, result: ?string) => void | ||
| لا | | لا | ||
| دالة تُستدعى عند إكتمال عملية جلب البيانات أو حدوث خطأ أثناء العملية. | | دالة تُستدعى عند إكتمال عملية جلب البيانات أو حدوث خطأ أثناء العملية. | ||
سطر 68: | سطر 66: | ||
<syntaxhighlight class="react" lang="javascript">static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | ||
تُخزِّن البيانات في صورة زوج (<code>key: value</code>)، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع [ | تُخزِّن البيانات في صورة زوج (<code>key: value</code>)، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''المعاملات''' | '''المعاملات:''' | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 89: | سطر 87: | ||
|- | |- | ||
| <code>callback</code> | | <code>callback</code> | ||
| | | ?(error: ?Error) => void | ||
| لا | | لا | ||
| دالة تُستدعى عند حدوث خطأ اثناء العملية. | | دالة تُستدعى عند حدوث خطأ اثناء العملية. | ||
سطر 97: | سطر 95: | ||
<syntaxhighlight class="react" lang="javascript">static removeItem(key: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static removeItem(key: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | ||
تحذف العنصر المرتبط بالمفتاح المعين، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع [ | تحذف العنصر المرتبط بالمفتاح المعين، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''المعاملات:''' | |||
{| class="wikitable" | {| class="wikitable" | ||
سطر 105: | سطر 105: | ||
! الوصف | ! الوصف | ||
|- | |- | ||
| <code>key</code> | |<code>key</code> | ||
| سلسلة نصية (string) | | سلسلة نصية (string) | ||
| نعم | | نعم | ||
| المفتاح الخاص بالعنصر المُراد حذفه. | | المفتاح الخاص بالعنصر المُراد حذفه. | ||
|- | |- | ||
| <code>callback</code> | |<code>callback</code> | ||
| | | ?(error: ?Error) => void | ||
| لا | | لا | ||
| دالة تُستدعى عند حدوث خطأ اثناء العملية. | | دالة تُستدعى عند حدوث خطأ اثناء العملية. | ||
|} | |} | ||
=== <code>mergeItem</code> === | ===<code>mergeItem()</code>=== | ||
<syntaxhighlight class="react" lang="javascript">static mergeItem(key: string, value: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static mergeItem(key: string, value: string, [callback]: ?(error: ?Error) => void)</syntaxhighlight> | ||
تُحدِّث القيمة المرتبطة معيّن. ويجب أن يكون المفتاح والقيمة الجديدة في شكل سلسلة JSON. تُرجع كائن من النوع [ | تُحدِّث القيمة المرتبطة معيّن. ويجب أن يكون المفتاح والقيمة الجديدة في شكل سلسلة JSON. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''ملاحظة''': بعض عمليات التنفيذ للمنصات الأصيلة (Native implementations) لا تدعم هذه الدالة. | |||
'''المعاملات''' | '''المعاملات:''' | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 129: | سطر 131: | ||
! الوصف | ! الوصف | ||
|- | |- | ||
| <code>key</code> | |<code>key</code> | ||
| سلسلة نصية (string) | | سلسلة نصية (string) | ||
| نعم | | نعم | ||
| المفتاح المُراد تحديث قيمته. | | المفتاح المُراد تحديث قيمته. | ||
|- | |- | ||
| <code>value</code> | |<code>value</code> | ||
| سلسلة نصية (string) | | سلسلة نصية (string) | ||
| نعم | | نعم | ||
| القيمة الجديدة للمفتاح. | | القيمة الجديدة للمفتاح. | ||
|- | |- | ||
| <code>callback</code> | |<code>callback</code> | ||
| | | ?(error: ?Error) => void | ||
| لا | | لا | ||
| دالة تُستدعى عند حدوث خطأ اثناء العملية. | | دالة تُستدعى عند حدوث خطأ اثناء العملية. | ||
|} | |} | ||
'''مثال''' | '''مثال:''' | ||
<syntaxhighlight class="react" lang="javascript">let UID123_object = { | <syntaxhighlight class="react" lang="javascript">let UID123_object = { | ||
سطر 180: | سطر 182: | ||
<syntaxhighlight class="react" lang="javascript">static clear([callback]: ?(error: ?Error) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static clear([callback]: ?(error: ?Error) => void)</syntaxhighlight> | ||
تحذف جميع البيانات المُخزنة في <code>AsyncStorage</code>، حتى تلك المرتبطة بتطبيقات أخرى. لذلك لا يُنصح باستخدامها ويجب استخدام <code>removeItem</code> أو <code>multiRemove</code> لمسح المفاتيح المرتبطة بتطبيقك فقط. تُرجع كائن من النوع [ | تحذف جميع البيانات المُخزنة في <code>AsyncStorage</code>، حتى تلك المرتبطة بتطبيقات أخرى. لذلك لا يُنصح باستخدامها ويجب استخدام <code>removeItem</code> أو <code>multiRemove</code> لمسح المفاتيح المرتبطة بتطبيقك فقط. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''المعاملات''' | '''المعاملات:''' | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 198: | سطر 200: | ||
<syntaxhighlight class="react" lang="javascript">static getAllKeys([callback]: ?(error: ?Error, keys: ?Array<string>) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static getAllKeys([callback]: ?(error: ?Error, keys: ?Array<string>) => void)</syntaxhighlight> | ||
تتحصل على جميع المفاتيح المرتبطة بالتطبيق. تُرجع كائن من النوع [ | تتحصل على جميع المفاتيح المرتبطة بالتطبيق. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''المعاملات''' | '''المعاملات''' | ||
سطر 222: | سطر 224: | ||
<syntaxhighlight class="react" lang="javascript">static multiGet(keys: Array<string>, [callback]: ?(errors: ?Array<Error>, result: ?Array<Array <string>>) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static multiGet(keys: Array<string>, [callback]: ?(errors: ?Array<Error>, result: ?Array<Array <string>>) => void)</syntaxhighlight> | ||
تسمح بالحصول على العناصر دفعة واحدة عن طريق إرسال مجموعة من المفاتيح للدالة والحصول على البيانات المرتبطة بهذه المفاتيح في شكل أزواج (key: value). تُرجع كائن من النوع [ | تسمح بالحصول على العناصر دفعة واحدة عن طريق إرسال مجموعة من المفاتيح للدالة والحصول على البيانات المرتبطة بهذه المفاتيح في شكل أزواج (key: value). تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
<syntaxhighlight class="react" lang="javascript">multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']])</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']])</syntaxhighlight> | ||
سطر 234: | سطر 236: | ||
|- | |- | ||
| <code>keys</code> | | <code>keys</code> | ||
| | | Array<string> | ||
| نعم | | نعم | ||
| مصفوفة من المفاتيح المراد جلب العناصر المرتبطة بها. | | مصفوفة من المفاتيح المراد جلب العناصر المرتبطة بها. | ||
|- | |- | ||
| <code>callback</code> | | <code>callback</code> | ||
| | | ?(errors: ?Array<Error> | ||
result: ?Array<Array <string>>) => void | |||
| لا | | لا | ||
| دالة تُستدعى عند إكتمال العملية والحصول على البيانات أو عند حدوث خطأ. | | دالة تُستدعى عند إكتمال العملية والحصول على البيانات أو عند حدوث خطأ. | ||
سطر 258: | سطر 261: | ||
<syntaxhighlight class="react" lang="javascript">static multiSet(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static multiSet(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | ||
تُحزِّن عددًا من الازواج (<code>key: value</code>) دفعةً واحدة. عند اكتمال العملية تحصل على ردّ نداء واحد يحتوي على جميع الأخطاء في حال حدوثها. تُرجع كائن من النوع [ | تُحزِّن عددًا من الازواج (<code>key: value</code>) دفعةً واحدة. عند اكتمال العملية تحصل على ردّ نداء واحد يحتوي على جميع الأخطاء في حال حدوثها. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
<syntaxhighlight class="react" lang="javascript">multiSet([['k1', 'val1'], ['k2', 'val2']], cb);</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">multiSet([['k1', 'val1'], ['k2', 'val2']], cb);</syntaxhighlight>'''المعاملات:''' | ||
{| class="wikitable" | {| class="wikitable" | ||
! الاسم | ! الاسم | ||
سطر 267: | سطر 270: | ||
! الوصف | ! الوصف | ||
|- | |- | ||
| <code>keyValuePairs</code> | |<code>keyValuePairs</code> | ||
| | | Array<Array <string>> | ||
| نعم | | نعم | ||
| مصفومة من الازواج (<code>key: value</code>). | | مصفومة من الازواج (<code>key: value</code>). | ||
|- | |- | ||
| <code>callback</code> | |<code>callback</code> | ||
| | | ?(errors: ?Array<Error>, | ||
result: ?Array<Array <string>>) => void | |||
| لا | | لا | ||
| دالة تُستدعى عند | | دالة تُستدعى عند اكتمال العملة أو عند حدوث خطأ. | ||
|} | |} | ||
سطر 281: | سطر 285: | ||
<syntaxhighlight class="react" lang="javascript">static multiRemove(keys: Array<string>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static multiRemove(keys: Array<string>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | ||
تحذف جميع البيانات المرتبطة بالمفاتيح المُعطاة للدالة. تُرجع كائن من النوع [ | تحذف جميع البيانات المرتبطة بالمفاتيح المُعطاة للدالة. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''المعاملات''' | '''المعاملات''' | ||
سطر 292: | سطر 296: | ||
|- | |- | ||
| <code>keys</code> | | <code>keys</code> | ||
| | | Array<string> | ||
| نعم | | نعم | ||
| مصفوفة من المفاتيح المراد حذفها. | | مصفوفة من المفاتيح المراد حذفها. | ||
|- | |- | ||
| <code>callback</code> | | <code>callback</code> | ||
| | | ?(errors: ?Array<Error>) => void | ||
| لا | | لا | ||
| دالة تُستدعى عند إكتمال العملية أو عند حدوث خطأ. | | دالة تُستدعى عند إكتمال العملية أو عند حدوث خطأ. | ||
سطر 312: | سطر 316: | ||
<syntaxhighlight class="react" lang="javascript">static multiMerge(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | <syntaxhighlight class="react" lang="javascript">static multiMerge(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)</syntaxhighlight> | ||
تُحدِّث قيم أكثر من مفتاح واحد دفعة واحدة. ويجب أن تكون جميع القيم والمفاتيح في شكل سلسلة JSON. تُرجع كائن من النوع [ | تُحدِّث قيم أكثر من مفتاح واحد دفعة واحدة. ويجب أن تكون جميع القيم والمفاتيح في شكل سلسلة JSON. تُرجع كائن من النوع <code>[[JavaScript/Promise|Promise]]</code>. | ||
'''ملاحظة''': بعض عمليات التنفيذ | '''ملاحظة''': بعض عمليات التنفيذ للمنصات الأصيلة (Native implementations) لا تدعم هذه الدالة. | ||
'''المعاملات''' | '''المعاملات''' | ||
سطر 325: | سطر 329: | ||
|- | |- | ||
| <code>keyValuePairs</code> | | <code>keyValuePairs</code> | ||
| | | Array<Array <string>> | ||
| نعم | | نعم | ||
| مصفومة من الأزواج (key: value). | | مصفومة من الأزواج (key: value). | ||
|- | |- | ||
| <code>callback</code> | | <code>callback</code> | ||
| | | ?(errors: ?Array<Error>, | ||
result: ?Array<Array <string>>) => void | |||
| لا | | لا | ||
| دالة تُستدعى عند إكتمال العملة أو عند حدوث خطأ. | | دالة تُستدعى عند إكتمال العملة أو عند حدوث خطأ. | ||
سطر 389: | سطر 394: | ||
== المصادر == | == المصادر == | ||
[https://reactnative.dev/docs/asyncstorage صفحة AsyncStorage في توثيق React Native الرسمي]. | * [https://reactnative.dev/docs/asyncstorage صفحة AsyncStorage في توثيق React Native الرسمي]. | ||
[[تصنيف: ReactNative]] | [[تصنيف: ReactNative]] |
المراجعة الحالية بتاريخ 12:42، 9 أكتوبر 2021
مهملة: استخدم إحدى الحزم التي يوفرها المجتمع بدلًا عنها.
AsyncStorage
هو نظام تخزين مستمر غير مشفّر وغير متزامن، يُخزن البيانات في صورة أزواج (key: value)
، وهو نظام موحّد لكلّ أجزاء التطبيق، ويجب استعماله بدلًا عن LocalStorage
.
يُفضّل استخدام التجريد (abstraction) على مستوى أعلى من AsyncStorage
بدلًا من استخدامه على AsyncStorage
مباشرةً في حالة التخزين الثقيل للبيانات.
يدعم نظام iOS نظام التخزين AsyncStorage
بواسطة شيفرة أصلية تُخزِّن القيم الصغيرة في قاموس متسلسل، والقيم الكبيرة في ملفّات منفصلة؛ أمّا نظام أندويد فسيتخدم إمّا RocksDB
أو SQLite
بناءً على ما هو متاح.
شيفرة جافاسكربت الخاصة بنظام التخزين AsyncStorage
توفِّر واجهة برمجة تطبيقات (API) واضحة، وكائنات خطأ (Error Objects)، ودوال غير متعددة. كلّ دالة في واجهة برمجة التطبيقات (API) تُرجع وعدًا (Promise).
مثال
مثال لاستيراد مكتبة AsyncStorage
:
import { AsyncStorage} from 'react-native';
حفظ البيانات:
_storeData = async () => {
try {
await AsyncStorage.setItem(
'@MySuperStore:key',
'I like to save it.'
);
} catch (error) {
// Error saving data
}
};
قراءة البيانات:
_retrieveData = async () => {
try {
const value = await AsyncStorage.getItem('TASKS');
if (value !== null) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
};
التوابع
getItem()
static getItem(key: string, [callback]: ?(error: ?Error, result: ?string) => void)
تجلب البيانات الخاصة بمفتاح (key
) معيّن وتستدعي ردّ نداء (callback). بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ تُرجع كائن من النوع promise
.
المعاملات
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
key
|
سلسلة نصية (string) | نعم | المفتاح الخاص بالبيانات المُراد جلبها. |
callback
|
?(error: ?Error, result: ?string) => void | لا | دالة تُستدعى عند إكتمال عملية جلب البيانات أو حدوث خطأ أثناء العملية. |
setItem()
static setItem(key: string, value: string, [callback]: ?(error: ?Error) => void)
تُخزِّن البيانات في صورة زوج (key: value
)، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع Promise
.
المعاملات:
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
key
|
سلسلة نصية (string) | نعم | المفتاح الخاص بالعنصر المُراد تخزينه. |
value
|
سلسلة نصية (string) | نعم | العنصر المراد تخزينه. |
callback
|
?(error: ?Error) => void | لا | دالة تُستدعى عند حدوث خطأ اثناء العملية. |
removeItem()
static removeItem(key: string, [callback]: ?(error: ?Error) => void)
تحذف العنصر المرتبط بالمفتاح المعين، وتستدعي دالة بعد إكتمال العملية أو حدوث خطأ أثناء التنفيذ. تُرجع كائن من النوع Promise
.
المعاملات:
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
key
|
سلسلة نصية (string) | نعم | المفتاح الخاص بالعنصر المُراد حذفه. |
callback
|
?(error: ?Error) => void | لا | دالة تُستدعى عند حدوث خطأ اثناء العملية. |
mergeItem()
static mergeItem(key: string, value: string, [callback]: ?(error: ?Error) => void)
تُحدِّث القيمة المرتبطة معيّن. ويجب أن يكون المفتاح والقيمة الجديدة في شكل سلسلة JSON. تُرجع كائن من النوع Promise
.
ملاحظة: بعض عمليات التنفيذ للمنصات الأصيلة (Native implementations) لا تدعم هذه الدالة.
المعاملات:
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
key
|
سلسلة نصية (string) | نعم | المفتاح المُراد تحديث قيمته. |
value
|
سلسلة نصية (string) | نعم | القيمة الجديدة للمفتاح. |
callback
|
?(error: ?Error) => void | لا | دالة تُستدعى عند حدوث خطأ اثناء العملية. |
مثال:
let UID123_object = {
name: 'Chris',
age: 30,
traits: { hair: 'brown', eyes: 'brown' }
};
// You only need to define what will be added or updated
let UID123_delta = {
age: 31,
traits: { eyes: 'blue', shoe_size: 10 }
};
AsyncStorage.setItem(
'UID123',
JSON.stringify(UID123_object),
() => {
AsyncStorage.mergeItem(
'UID123',
JSON.stringify(UID123_delta),
() => {
AsyncStorage.getItem('UID123', (err, result) => {
console.log(result);
});
}
);
}
);
// Console log result:
// => {'name':'Chris','age':31,'traits':
// {'shoe_size':10,'hair':'brown','eyes':'blue'}}
clear()
static clear([callback]: ?(error: ?Error) => void)
تحذف جميع البيانات المُخزنة في AsyncStorage
، حتى تلك المرتبطة بتطبيقات أخرى. لذلك لا يُنصح باستخدامها ويجب استخدام removeItem
أو multiRemove
لمسح المفاتيح المرتبطة بتطبيقك فقط. تُرجع كائن من النوع Promise
.
المعاملات:
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
callback
|
?(error: ?Error) => void
|
لا | دالة تُستدعى عند حدوث خطأ اثناء العملية. |
getAllKeys()
static getAllKeys([callback]: ?(error: ?Error, keys: ?Array<string>) => void)
تتحصل على جميع المفاتيح المرتبطة بالتطبيق. تُرجع كائن من النوع Promise
.
المعاملات
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
callback
|
?(error: ?Error) => void
|
لا | دالة تُستدعى عند إكتمال العملية والحصول على المفاتيح أو عند حدوث خطأ. |
flushGetRequests()
static flushGetRequests(): [object Object]
تحذف جميع الطلبات المُعلّقة عن طريق الحصول على البيانات كدفعة واحدة.
multiGet()
static multiGet(keys: Array<string>, [callback]: ?(errors: ?Array<Error>, result: ?Array<Array <string>>) => void)
تسمح بالحصول على العناصر دفعة واحدة عن طريق إرسال مجموعة من المفاتيح للدالة والحصول على البيانات المرتبطة بهذه المفاتيح في شكل أزواج (key: value). تُرجع كائن من النوع Promise
.
multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']])
المعاملات
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
keys
|
Array<string> | نعم | مصفوفة من المفاتيح المراد جلب العناصر المرتبطة بها. |
callback
|
?(errors: ?Array<Error>
result: ?Array<Array <string>>) => void |
لا | دالة تُستدعى عند إكتمال العملية والحصول على البيانات أو عند حدوث خطأ. |
مثال
AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((result, i, store) => {
// get at each store's key/value so you can work with it
let key = store[i][0];
let value = store[i][1];
});
});
});
multiSet()
static multiSet(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)
تُحزِّن عددًا من الازواج (key: value
) دفعةً واحدة. عند اكتمال العملية تحصل على ردّ نداء واحد يحتوي على جميع الأخطاء في حال حدوثها. تُرجع كائن من النوع Promise
.
multiSet([['k1', 'val1'], ['k2', 'val2']], cb);
المعاملات:
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
keyValuePairs
|
Array<Array <string>> | نعم | مصفومة من الازواج (key: value ).
|
callback
|
?(errors: ?Array<Error>,
result: ?Array<Array <string>>) => void |
لا | دالة تُستدعى عند اكتمال العملة أو عند حدوث خطأ. |
multiRemove()
static multiRemove(keys: Array<string>, [callback]: ?(errors: ?Array<Error>) => void)
تحذف جميع البيانات المرتبطة بالمفاتيح المُعطاة للدالة. تُرجع كائن من النوع Promise
.
المعاملات
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
keys
|
Array<string> | نعم | مصفوفة من المفاتيح المراد حذفها. |
callback
|
?(errors: ?Array<Error>) => void | لا | دالة تُستدعى عند إكتمال العملية أو عند حدوث خطأ. |
مثال
let keys = ['k1', 'k2'];
AsyncStorage.multiRemove(keys, (err) => {
// keys k1 & k2 removed, if they existed
// do most stuff after removal (if you want)
});
multiMerge
static multiMerge(keyValuePairs: Array<Array <string>>, [callback]: ?(errors: ?Array<Error>) => void)
تُحدِّث قيم أكثر من مفتاح واحد دفعة واحدة. ويجب أن تكون جميع القيم والمفاتيح في شكل سلسلة JSON. تُرجع كائن من النوع Promise
.
ملاحظة: بعض عمليات التنفيذ للمنصات الأصيلة (Native implementations) لا تدعم هذه الدالة.
المعاملات
الاسم | النوع | مطلوب | الوصف |
---|---|---|---|
keyValuePairs
|
Array<Array <string>> | نعم | مصفومة من الأزواج (key: value). |
callback
|
?(errors: ?Array<Error>,
result: ?Array<Array <string>>) => void |
لا | دالة تُستدعى عند إكتمال العملة أو عند حدوث خطأ. |
مثال
// first user, initial values
let UID234_object = {
name: 'Chris',
age: 30,
traits: { hair: 'brown', eyes: 'brown' }
};
// first user, delta values
let UID234_delta = {
age: 31,
traits: { eyes: 'blue', shoe_size: 10 }
};
// second user, initial values
let UID345_object = {
name: 'Marge',
age: 25,
traits: { hair: 'blonde', eyes: 'blue' }
};
// second user, delta values
let UID345_delta = {
age: 26,
traits: { eyes: 'green', shoe_size: 6 }
};
let multi_set_pairs = [
['UID234', JSON.stringify(UID234_object)],
['UID345', JSON.stringify(UID345_object)]
];
let multi_merge_pairs = [
['UID234', JSON.stringify(UID234_delta)],
['UID345', JSON.stringify(UID345_delta)]
];
AsyncStorage.multiSet(multi_set_pairs, (err) => {
AsyncStorage.multiMerge(multi_merge_pairs, (err) => {
AsyncStorage.multiGet(['UID234', 'UID345'], (err, stores) => {
stores.map((result, i, store) => {
let key = store[i][0];
let val = store[i][1];
console.log(key, val);
});
});
});
});
// Console log results:
// => UID234 {"name":"Chris","age":31,"traits":{"shoe_size":10,"hair":"brown","eyes":"blue"}}
// => UID345 {"name":"Marge","age":26,"traits":{"shoe_size":6,"hair":"blonde","eyes":"green"}}