В процессе выполнения асинхронной операции попытка выполнения других асинхронных операций приведёт к тому, что они будут проигнорированы. Приложение следует проектировать таким образом, что бы команды не выполнялись асинхроно между собой.
let i;
let promises = [];
for (i = 0; i < slots.length; i++) {
promises.push(
getTokenInfo(slots[i].id)
)
}
Promise.all(promises).then(function(result) {
console.log(result);
})
getTokenInfo = function(id) {
return new Promise((resolve, reject) => {
JCWebClient2.getTokenInfo({
args: { tokenID: id },
onSuccess: function(info) {
console.log(id);
resolve(info);
},
onError: reject
});
});
}
Чтобы ответить на вопрос, сначала надо понять, про что именно идет речь? URL?
Собственные компоненты и шаблоны - в собственном пространстве имен. Кастомизируя штатные компоненты и шаблоны, разрабатывая собственные, размещайте их в собственном пространстве имен. При обновлении системы все внесенные изменения в пространстве bitrix затираются.
вопрос про автоматизацию проверки работоспособности в разных CMS.
"Проверить алгоритм подписи. Общая последовательность должна быть такой (на примере SendRequest):
1. Каноникализация содержимого узла SenderProvidedRequestData;
2. Нормализация;
3. Расчет хэша;
4. Формирование ЭП-ОВ:
a. запись cодержимого хэша в CallerInformationSystemSignature\Signature\SignedInfo\DigestValue
b. каноникализация, нормализация элемента CallerInformationSystemSignature\Signature\SignedInfo
c. рассчет хэша элемента CallerInformationSystemSignature\Signature\SignedInfo
d. подпись хэша CallerInformationSystemSignature\Signature\SignedInfo
e. запись значения подписи в CallerInformationSystemSignature\Signature\SignatureValue
f. запись данных сертификата в CallerInformationSystemSignature\Signature\KeyInfo\X509Data\X509Certificate"
$item = DOMDocument::getElementsByTagName('SenderProvidedRequestData')->item(0);
$canonData = $item->C14N(true);
$transformed = DOMManager::smevTransform($canonData);
$digestValue = CryptoClient::getHash($transformed);
$item = DOMDocument::getElementsByTagName('SignedInfo')->item(0);
$canonSignedInfo = $item->C14N(true);
$db = mysqli_connect("localhost", "root", "123123", "database");
if (!$db) {
throw new Exception('Ошибка соединения с базой данных.');
}
$sql = "SELECT * FROM `users` WHERE id IN (" . implode(',', $user_ids) . ")";
$query = mysqli_query($db, $sql);
while($obj = $query->fetch_object()) {
$data[$obj->id] = $obj->name;
}
mysqli_close($db);
namespace App\Http\Controllers;
class ClientController extends PartnerController
{
private $type = 'client';
publit $title = ´Клиенты´;
}
namespace App\Http\Controllers;
class PartnerController extends Controller
{
public function index()
{
return view(“partner.index.blade”, [“title” => $this->title];
}
}