جافاسكريبت - كيف أحل وعدًا في اختبار وحدة AngularJS

أنا أستخدم إعداد كاما/جاسمين الأساسي لاختبار رمز Angular الخاص بي. إليك اختباري:

var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q; describe('main controller', function() { var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q; beforeEach(inject(fu

اقرأ أكثر →

جافاسكريبت - إرجاع نتيجة وعود AJAX باستخدام jQuery

هل يمكن لأحد أن يشرح لماذا في المثال التالي، تعيد foo() الوعد بأكمله بدلاً من البيانات فقط؟ وكيف يمكن جعل foo() تعيد البيانات فقط؟

var foo = function() { var promise = $.ajax({ type: 'POST', url: 'http://example.com' }) return promise.done(function(data) { return data }) } console.log(foo())

اقرأ أكثر →

جافاسكريبت - كيف يمكن إرجاع وعد واحد بعد اكتمال حلقة for (التي تنتج وعدًا في كل تكرار)؟

لدي مشكلة في رمز إرجاع الوعد الخاص بي، لدي دالة getTagQuotes تحتوي على حلقة for يمكنها إجراء مكالمات متعددة لواجهة برمجة التطبيقات لإرجاع البيانات في مصفوفة.

كيف يبدأ الكود الخاص بي لهذا أدناه:

// If there are tags, then w

اقرأ أكثر →

جافا سكريبت - تشغيل وعد واحد فقط لعدة طلبات

أريد أن تجعل الكائنات تطلب وعد JavaScript، لكنني لا أريد أن تنشئ وعودًا منفصلة. المنطق الذي أريد تحقيقه هو كما يلي - التحقق مما إذا كان الوعد قيد الانتظار، وفقط إذا لم يكن كذلك، إنشاء وعد جديد. هل هذا ممكن؟ وفقًا للتوثيق، لا يمكنني التحقق من حالة الوعد، يمكنني فقط التعامل معه بعد الوفاء به، لكنني ل

اقرأ أكثر →

لماذا يحتوي وعد jQuery على الدالة done()، بينما وعد جافاسكريبت الموثَّق من قبل موزيلا لا يحتوي عليها؟ ماذا إذا أردت وجود دالة done() في JS؟

ما هي الاختلافات بين وعود جافا سكريبت الخاصة بموزيلا (انظر صفحة واجهة برمجة التطبيقات) ووعود jQuery (انظر صفحة واجهة برمجة التطبيقات)؟

يبدو أن وعد Mozilla يحتوي فقط على طريقتين: then و catch. يبدو أن وعد jQuery يحتوي على المزيد من الطرق، بما في ذلك: then و do

اقرأ أكثر →

جافاسكريبت - ضع دالة تُرجع وعودًا في حالة ريدكس

سأشرح لاحقًا لماذا أريد القيام بذلك. هنا المشكلة. لدي دالة تُرجع وعدًا كما يلي:

const testFunc = () => { return new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() > 0.5) { resolve('succeeded'); } else { reject('failed'); } },

اقرأ أكثر →

جافاسكريبت - لماذا تحتاج رفض وعد ES6 الخاص بي إلى أن يتم استهلاكه فورًا لتجنب رسالة خطأ في وحدة التحكم؟

يرجى الملاحظة: المشكلة التالية تتصرف بشكل مختلف على المتصفحات المختلفة. لذلك ربما تكون هذه مشكلة في تنفيذ المتصفح. سأكون ممتنًا لأي نصيحة مهما كانت.

في تطبيقي، أنا أقوم بإنشاء زوج من الوعود التي قد لا أستخدمها حتى وقت لاحق في المستقبل. يجب أن يكون

اقرأ أكثر →

javascript - استثناء DOM غير ملتقط (في الوعد): العنصر ليس له مصادر مدعومة

استخدام music-frequency-d3 لتصور الصوت في تطبيق AngularJs الخاص بي، قمت بإنشاء مكون bower لهذا باستخدام music-frequency-d3، ولكن عندما أقوم بإدراج عنوان الويب للصوت الخاص بي كقيمة لخاصية src يظهر الخطأ أدناه.

استثناء DOM غير ملتقط (في الوعد): العنصر ليس له مصادر مدعومة

اقرأ أكثر →

جافاسكريبت - كيف تحول التريجر/الحدث إلى Promise أو async/await؟

أنا أحاول تحويل دالة الاستدعاء الخلفي إلى async/await. يستخدم الكود postMessage من إطار النافذة الرئيسية إلى iframe. عندما يرسل الـ iframe رسالة مرة أخرى، يتم استدعاء دالة الاستدعاء الخلفي. هل هناك أي طريقة للتحويل إلى Promise من نمط $ (window).on(...)؟

النسخة المصغرة من الكود ا

اقرأ أكثر →

جافا سكريبت - لماذا يقوم VS Code بالتوقف عند استثناء تم التعامل معه من Reject في الوعد؟

خذ هذا الكود، لدينا وعد يستدعي دالة ستفشل، ويجب أن يمرر الخطأ إلى طريقة الالتقاط (catch) للوعد. يعمل بشكل جيد عند تشغيله من الطرفية. ومع ذلك، عند تشغيله من خلال vscode، فإنه ينفجر عند (1).

function failingFunc() { let undef = undefined; return undef.nope(); } let promise = new Promise((resolve, reject) => { resolve(failingFunc()); // (1) Explodes when run from vscode }); promise.then(v => {}).catch((e: Error) => { console.log(e.message); //

اقرأ أكثر →