Слияние кода завершено, страница обновится автоматически
structural typing, параметр типа в коллбэке then taskpool фиксированного типа Object, в то время как фактически возвращается тип Array. Приведение значения как Array для сканирования вызывает ошибку, что делает невозможным чтение возвращаемого значения в коллбэке then taskpool.
Код до исправления:
let task1: taskpool.Task = new taskpool.Task(funObject1());
taskpool.execute(task1).then((value:Object) => {
console.info("результат теста taskpool: " + JSON.stringify(value));
let aa = value as Array<string|number>;
expect(aa[0]).assertEqual('toString result: bb : cc');
expect(aa[1]).assertEqual(200);
expect(aa[2]).assertEqual('testtoString');
});
function funObject1():Array<string|number> {
let aa:ObjectInfo1 = new ObjectInfo1('bb', 'cc');
let ee:Array<string|number> = [aa.toString(), aa.toString(2), aa.toString('test')];
return ee;
}
Исправление успешно выполнено.
В методе then
объекта taskpool
тип параметра value
фиксирован как Object
, но фактически возвращается массив типа Array
. Преобразование value
в Array
приводит к ошибке, из-за которой метод then
не может корректно обработать возвращаемое значение.
Вход Перед тем как оставить комментарий