Дополнения к МУРОМУ | MUROM additions
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

2019-09-10.js 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Subscribe several functions in a single call.
  2. Reporter.prototype.subscribeMany = function(funcs)
  3. {
  4. for (var i = 0; i < funcs.length; ++i)
  5. {
  6. var func = funcs[i];
  7. this.subscribe(func);
  8. }
  9. }
  10. murom.getMany = function(urls, completionCallback)
  11. {
  12. var self = this;
  13. var results = new Array(urls.length).fill(null);
  14. var count = 0;
  15. function reportCompletion()
  16. {
  17. if (++count == urls.length)
  18. {
  19. if (completionCallback)
  20. {
  21. completionCallback(results);
  22. }
  23. }
  24. }
  25. for (var id in urls)
  26. {
  27. const url = urls[id];
  28. const urlId = id;
  29. murom.get(
  30. url,
  31. function(contents)
  32. {
  33. results[urlId] = contents;
  34. reportCompletion()
  35. },
  36. function(status)
  37. {
  38. LOG(
  39. formatString(
  40. "ERROR Could not download URL: '{0}' status: '{1}'",
  41. url,
  42. status
  43. )
  44. );
  45. reportCompletion()
  46. }
  47. );
  48. }
  49. };
  50. murom.import = function(urls, completionCallback)
  51. {
  52. murom.getMany(
  53. urls,
  54. function(contents)
  55. {
  56. for (var id in contents)
  57. {
  58. eval(contents[id]);
  59. }
  60. }
  61. );
  62. };