我有以下代码:
...
const array = nestings.map(async nesting =>
await Promise.all([
getFirstDataFromDB();
getSecondDataFromDB();
getThirdDataFromDB();
]);
.then([data1, data2, data3]) => ({data1: data1, data2: data2, data3: data3}))
.catch(error => console.log(error))
...
console.log(array); // Promise
Run Code Online (Sandbox Code Playgroud)
在console.log中,我可以保证,但是如何获取生成的数组?
我想编写记录器,我需要有关源文件和行的数据。这行代码在编译时是否有效:
constexpr std::string_view source = (std::string(__FILE__) + ":" + std::to_string(__LINE__));
Run Code Online (Sandbox Code Playgroud)
如果它在编译时不起作用,我将如何做?也许这是不可能的?
我用C++编写了测试代码:
void handler()
{
std::cout << "allocation failed" << std::endl;
std::set_new_handler(nullptr);
}
int main()
{
size_t allocations_count = 0u;
std::set_new_handler(handler);
try {
while (true) {
new char[1024u * 1024u * 1024u];
++allocations_count;
}
} catch (const std::bad_alloc& e) {
std::cout << e.what() << '\n';
}
std::cout << "allocated " << allocations_count << " GB" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
在我的 8GB RAM 机器上,我得到了输出:
BigAllocations(5125,0x1050e7d40) malloc: can't allocate region
:*** mach_vm_map(size=1073741824, flags: 100) failed (error code=3)
BigAllocations(5125,0x1050e7d40) malloc: *** set a breakpoint in …Run Code Online (Sandbox Code Playgroud)