javascript - 这怎么可能?东西应该被打印出来,但他们没有
问题描述
我不明白如何不打印 console.logs。
import { GenericRepository, getGenericRepository } from '../src/database/repository/GenericRepository';
import { start, stop } from '../src/index';
import request from 'request';
const baseUrl = 'http://localhost:3200/';
const getTable = async (tableName: string) => {
const data = {
'tableName': 'tableName'
};
const header = {
url: baseUrl + 'table',
method: 'POST',
json: true
};
console.log('hello');
request.post({
url: 'http://localhost:3200/getTable',
body: data,
json: true
}, (error, response, body) => {
console.log('getting angry');
if (error) {
console.error('error: ', error);
} else {
console.log(response);
}
});
await new Promise((resolve, reject) => {
request.post({
url: 'http://localhost:3200/getTable',
json: data
}, (error, response, body) => {
console.log('getting angry');
if (error) {
console.error('error: ', error);
reject(error);
} else {
console.log(response);
resolve('response' + response);
}
});
})
}
describe('A suite', function () {
beforeAll(async done => {
// await start()f.catch(error => { console.log(error); });
done();
});
afterAll(() => {
console.log('afterall')
});
it('contains spec with an expectation', async done => {
console.log('spec executed')
getTable('supply').then(result => {
console.log('result: ', result)
}).catch(error => {
console.log('error', error);
});
console.log('after getTable')
done();
// expect(table.length).toBeGreaterThan(0);
});
});
这些都没有被打印出来:
console.log('getting angry');
console.error('error: ', error);
console.log(response);
console.log('result: ', result);
console.log('result: ', result);
console.log(response);
实际打印的是:
Started
spec
在 getTable
.afterall 之后执行
hello
请帮助我了解发生了什么!我用邮递员测试了它,服务器工作正常。我希望该请求将返回与邮递员相同的结果。
解决方案
你快到了,但你的电话done()
不在正确的地方。测试将运行,启动Promise
然后立即通知它是done()
在承诺有机会解决或拒绝之前。
尝试将done()
to 移到then
andcatch
块中:
it('contains spec with an expectation', async done => {
getTable('supply').then(result => {
console.log('result: ', result)
done()
}).catch(error => {
console.log('error', error)
done.fail(error)
});
});
推荐阅读
- flutter - 我应该在 Flutter 中使用什么项目结构?
- node.js - TypeScript:开发环境中的“逗号运算符的左侧未使用并且没有副作用”错误
- java - 为什么我找不到 com.github.spotbugs:spotbugs-gradle-plugin?
- sql - DB2 中没有 XMLGROUP 的 LISTAGG 替代方案
- excel - Kendo excel 导出工作表名称和第二张工作表
- python - 对列表中的每个数组求和
- javascript - CORS 问题 - 使用 Keycloak 保护 ReactJS 前端和 JAX-RS 后端
- wordpress - 新行上的选项卡元素 - Elementor
- apache-spark - 在火花中,有没有办法在执行计划中间取消数据帧/rdd
- mips - MIPS中AddrConstant4($s1)的含义