应用程序正在使用Angular 2.4.3。 当前发生REST调用每2-3个月两次执行两次的问题。 请告诉我解决方法。
处理流程如下。
(1)单击一个按钮。
(2)collections = [['AAAAAA'], ['BBB'], ['CCCC'], ['DDDDDDD'], ['EEEEEEEEEEE']];
collection = collections.map(e => { return String(e) });
function shuffle(collection) {
collection.sort(function (a, b) {
// ASC -> a.length - b.length
// DESC -> b.length - a.length
return b.length - a.length;
});
let sum = 0;
for (let i = 1; i < collection.length; i++) {
sum += collection[i].length;
}
if (sum < collection[0].length) {
return `Letters are bound to be repeated due to huge number of characters in one array`;
}
else {
array = [];
while (collection.length > 0) {
let max = collection[0].length;
for (let i = 1; i < max;) {
if (collection.length == 1) {
if(collection[0][0])
array.push(collection[0][0]);
break;
}
else if (collection[i].length > 0) {
array.push(collection[0][0]);
array.push(collection[i][0]);
temp1 = collection[0].split('');
temp1.shift();
collection[0] = temp1.join('');
temp = collection[i].split('');
temp.shift();
collection[i] = temp.join('');
}
else {
collection.splice(i, 1);
collection.sort(function (a, b) {
// ASC -> a.length - b.length
// DESC -> b.length - a.length
return b.length - a.length;
});
}
}
collection.splice(0, 1);
collection.sort(function (a, b) {
// ASC -> a.length - b.length
// DESC -> b.length - a.length
return b.length - a.length;
});
}
array=array.join('');
console.log('ANS:', array)
return array
}
}
shuffle(collection);
被执行。
(3)当REST1
的ResponseStatus为REST1
时,执行200
。
上述(3)REST2
被重复执行。
通过REST2
的日志同时执行两次。
示例代码如下。
我正在执行RESTService
的多步执行,但是代码内容是否存在任何问题?
Observable.subscribe
如果有关于Angular和案例的错误信息,请告诉我。
答案 0 :(得分:0)
必须使用紧急方式来链接请求,请尝试以下反应方式:
import { Observable } from 'rxjs';
import { concatMap } from 'rxjs/operators';
let request = observable.pipe(
concatMap(val => {
... somecode
return observable2;
})
);
request.subscribe(console.log);